jekyll-theme-modootoday 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CHANGELOG.md +182 -0
- data/LICENSE +21 -0
- data/README.ko.md +115 -0
- data/README.md +112 -0
- data/RULES.md +120 -0
- data/_includes/footer-custom.html +5 -0
- data/_includes/head-custom.html +1 -0
- data/_includes/modootoday/actions.html +17 -0
- data/_includes/modootoday/archive-years.html +30 -0
- data/_includes/modootoday/archive.html +44 -0
- data/_includes/modootoday/blog/card.html +23 -0
- data/_includes/modootoday/blog/config.html +17 -0
- data/_includes/modootoday/blog/list.html +13 -0
- data/_includes/modootoday/blog/pager.html +15 -0
- data/_includes/modootoday/blog/reading-time.html +10 -0
- data/_includes/modootoday/blog/select.html +18 -0
- data/_includes/modootoday/brand/icon.html +39 -0
- data/_includes/modootoday/brand/logo.html +7 -0
- data/_includes/modootoday/breadcrumb.html +22 -0
- data/_includes/modootoday/config.html +41 -0
- data/_includes/modootoday/detail/cover.html +5 -0
- data/_includes/modootoday/detail/cta.html +13 -0
- data/_includes/modootoday/detail/facts.html +31 -0
- data/_includes/modootoday/detail/jsonld.html +34 -0
- data/_includes/modootoday/directory/date-tile.html +2 -0
- data/_includes/modootoday/directory/filter.html +7 -0
- data/_includes/modootoday/directory/ics.html +17 -0
- data/_includes/modootoday/directory/item.html +18 -0
- data/_includes/modootoday/directory/items.html +4 -0
- data/_includes/modootoday/directory/jsonld.html +5 -0
- data/_includes/modootoday/directory/list.html +16 -0
- data/_includes/modootoday/directory/values.html +6 -0
- data/_includes/modootoday/doc/page-actions.html +15 -0
- data/_includes/modootoday/doc/pagination.html +24 -0
- data/_includes/modootoday/doc/sidebar-item.html +11 -0
- data/_includes/modootoday/doc/sidebar.html +28 -0
- data/_includes/modootoday/doc/twin.html +8 -0
- data/_includes/modootoday/docs-extra/head.html +7 -0
- data/_includes/modootoday/docs-extra/jsonld.html +19 -0
- data/_includes/modootoday/head-meta.html +90 -0
- data/_includes/modootoday/home-url.html +4 -0
- data/_includes/modootoday/i18n/ar.html +2 -0
- data/_includes/modootoday/i18n/de.html +2 -0
- data/_includes/modootoday/i18n/el.html +2 -0
- data/_includes/modootoday/i18n/es.html +2 -0
- data/_includes/modootoday/i18n/fa.html +2 -0
- data/_includes/modootoday/i18n/fr.html +2 -0
- data/_includes/modootoday/i18n/id.html +2 -0
- data/_includes/modootoday/i18n/it.html +2 -0
- data/_includes/modootoday/i18n/ja.html +2 -0
- data/_includes/modootoday/i18n/ko.html +2 -0
- data/_includes/modootoday/i18n/ml.html +2 -0
- data/_includes/modootoday/i18n/name.html +2 -0
- data/_includes/modootoday/i18n/pl.html +2 -0
- data/_includes/modootoday/i18n/pt-BR.html +2 -0
- data/_includes/modootoday/i18n/ro.html +2 -0
- data/_includes/modootoday/i18n/ru.html +2 -0
- data/_includes/modootoday/i18n/th.html +2 -0
- data/_includes/modootoday/i18n/tr.html +2 -0
- data/_includes/modootoday/i18n/uk.html +2 -0
- data/_includes/modootoday/i18n/ur-Latn.html +2 -0
- data/_includes/modootoday/i18n/vi.html +2 -0
- data/_includes/modootoday/i18n/zh-CN.html +2 -0
- data/_includes/modootoday/i18n/zh-TW.html +2 -0
- data/_includes/modootoday/i18n.html +163 -0
- data/_includes/modootoday/jsonld/article.html +15 -0
- data/_includes/modootoday/jsonld/author.html +8 -0
- data/_includes/modootoday/jsonld/breadcrumb.html +17 -0
- data/_includes/modootoday/jsonld/entity.html +16 -0
- data/_includes/modootoday/jsonld/graph.html +24 -0
- data/_includes/modootoday/jsonld/profile.html +20 -0
- data/_includes/modootoday/jsonld/props.html +13 -0
- data/_includes/modootoday/jsonld/publisher.html +11 -0
- data/_includes/modootoday/jsonld/type.html +29 -0
- data/_includes/modootoday/jsonld/webpage.html +17 -0
- data/_includes/modootoday/jsonld/website.html +9 -0
- data/_includes/modootoday/lang-switch.html +31 -0
- data/_includes/modootoday/link.html +3 -0
- data/_includes/modootoday/links/attrs.html +9 -0
- data/_includes/modootoday/links/content.html +16 -0
- data/_includes/modootoday/markdown/c/details.html +6 -0
- data/_includes/modootoday/markdown/c/faq.html +2 -0
- data/_includes/modootoday/markdown/c/filetree.html +3 -0
- data/_includes/modootoday/markdown/c/gallery.html +5 -0
- data/_includes/modootoday/markdown/c/linkcards.html +2 -0
- data/_includes/modootoday/markdown/c/params.html +3 -0
- data/_includes/modootoday/markdown/c/pricing.html +10 -0
- data/_includes/modootoday/markdown/c/quote.html +6 -0
- data/_includes/modootoday/markdown/c/subscribe.html +6 -0
- data/_includes/modootoday/markdown/components.html +114 -0
- data/_includes/modootoday/markdown/inline.html +46 -0
- data/_includes/modootoday/markdown/llms-pages.html +14 -0
- data/_includes/modootoday/markdown/raw-body.html +6 -0
- data/_includes/modootoday/markdown/sections.html +43 -0
- data/_includes/modootoday/marketing/head.html +6 -0
- data/_includes/modootoday/meta/byline.html +24 -0
- data/_includes/modootoday/meta/post-nav.html +16 -0
- data/_includes/modootoday/meta/related.html +20 -0
- data/_includes/modootoday/meta/series.html +11 -0
- data/_includes/modootoday/meta/share.html +4 -0
- data/_includes/modootoday/nav.html +19 -0
- data/_includes/modootoday/news/badge.html +4 -0
- data/_includes/modootoday/news/front.html +30 -0
- data/_includes/modootoday/news/notes.html +10 -0
- data/_includes/modootoday/page-meta.html +16 -0
- data/_includes/modootoday/pages/error.html +13 -0
- data/_includes/modootoday/pages/hero/scene.html +27 -0
- data/_includes/modootoday/pages/hero/sparks.html +6 -0
- data/_includes/modootoday/pages/hero.html +11 -0
- data/_includes/modootoday/pages/search-form.html +14 -0
- data/_includes/modootoday/search.json +11 -0
- data/_includes/modootoday/stylesheets.html +36 -0
- data/_includes/modootoday/t.html +7 -0
- data/_includes/modootoday/theme-color.html +19 -0
- data/_includes/modootoday/toc.html +17 -0
- data/_includes/modootoday/tokens.html +11 -0
- data/_includes/sections/showcase.html +18 -0
- data/_layouts/archive.html +6 -0
- data/_layouts/author.html +19 -0
- data/_layouts/blog.html +28 -0
- data/_layouts/book.html +21 -0
- data/_layouts/brand.html +21 -0
- data/_layouts/case-study.html +5 -0
- data/_layouts/changelog.html +24 -0
- data/_layouts/contact.html +27 -0
- data/_layouts/course.html +21 -0
- data/_layouts/default.html +87 -0
- data/_layouts/detail.html +31 -0
- data/_layouts/directory.html +12 -0
- data/_layouts/doc.html +27 -0
- data/_layouts/download.html +21 -0
- data/_layouts/episode.html +5 -0
- data/_layouts/error.html +7 -0
- data/_layouts/event.html +5 -0
- data/_layouts/events.html +6 -0
- data/_layouts/feature.html +18 -0
- data/_layouts/feed.html +35 -0
- data/_layouts/glossary.html +24 -0
- data/_layouts/home.html +7 -0
- data/_layouts/hub.html +16 -0
- data/_layouts/integrations.html +7 -0
- data/_layouts/job.html +5 -0
- data/_layouts/jobs.html +7 -0
- data/_layouts/legal.html +21 -0
- data/_layouts/links.html +18 -0
- data/_layouts/llms-full.html +8 -0
- data/_layouts/llms.html +32 -0
- data/_layouts/minimal.html +8 -0
- data/_layouts/news-article.html +6 -0
- data/_layouts/news.html +22 -0
- data/_layouts/portfolio.html +7 -0
- data/_layouts/post.html +54 -0
- data/_layouts/pricing.html +32 -0
- data/_layouts/project.html +5 -0
- data/_layouts/redirect.html +21 -0
- data/_layouts/reference.html +24 -0
- data/_layouts/resume.html +50 -0
- data/_layouts/roadmap.html +22 -0
- data/_layouts/search.html +8 -0
- data/_layouts/sponsors.html +7 -0
- data/_layouts/team.html +7 -0
- data/_layouts/twin.html +2 -0
- data/_layouts/wide.html +7 -0
- data/_sass/modootoday/_access.scss +12 -0
- data/_sass/modootoday/_core.scss +18 -0
- data/_sass/modootoday/_settings.scss +5 -0
- data/_sass/modootoday/_sheet.scss +6 -0
- data/_sass/modootoday/base/_bidi.scss +8 -0
- data/_sass/modootoday/base/_code.scss +18 -0
- data/_sass/modootoday/base/_interaction.scss +6 -0
- data/_sass/modootoday/base/_prose.scss +32 -0
- data/_sass/modootoday/base/_reset.scss +14 -0
- data/_sass/modootoday/base/_table.scss +8 -0
- data/_sass/modootoday/blog/_article.scss +27 -0
- data/_sass/modootoday/blog/_cards.scss +36 -0
- data/_sass/modootoday/blog/_index.scss +10 -0
- data/_sass/modootoday/blog/_news.scss +26 -0
- data/_sass/modootoday/blog/_post.scss +9 -0
- data/_sass/modootoday/components/core/chrome/_banner.scss +7 -0
- data/_sass/modootoday/components/core/chrome/_breadcrumb.scss +10 -0
- data/_sass/modootoday/components/core/chrome/_nav.scss +39 -0
- data/_sass/modootoday/components/core/chrome/_pagination.scss +10 -0
- data/_sass/modootoday/components/core/chrome/_theme-toggle.scss +16 -0
- data/_sass/modootoday/components/core/inline/_badge.scss +15 -0
- data/_sass/modootoday/components/core/inline/_callout.scss +14 -0
- data/_sass/modootoday/components/core/inline/_code-copy.scss +11 -0
- data/_sass/modootoday/components/core/inline/_code.scss +11 -0
- data/_sass/modootoday/components/core/inline/_cta.scss +11 -0
- data/_sass/modootoday/components/core/inline/_embed.scss +6 -0
- data/_sass/modootoday/components/core/inline/_figure.scss +9 -0
- data/_sass/modootoday/components/core/inline/_footnotes.scss +6 -0
- data/_sass/modootoday/components/core/inline/_hero.scss +8 -0
- data/_sass/modootoday/components/core/inline/_kbd.scss +6 -0
- data/_sass/modootoday/components/core/inline/_progress.scss +8 -0
- data/_sass/modootoday/components/doc/_page-actions.scss +10 -0
- data/_sass/modootoday/components/doc/_sidebar.scss +31 -0
- data/_sass/modootoday/components/doc/_toc.scss +19 -0
- data/_sass/modootoday/components/loading/_loading.scss +33 -0
- data/_sass/modootoday/components/search/_search.scss +36 -0
- data/_sass/modootoday/components/section/showcase/_card.scss +15 -0
- data/_sass/modootoday/components/section/showcase/_cta.scss +7 -0
- data/_sass/modootoday/components/section/showcase/_gallery.scss +15 -0
- data/_sass/modootoday/components/section/showcase/_linkcards.scss +12 -0
- data/_sass/modootoday/components/section/showcase/_pricing.scss +12 -0
- data/_sass/modootoday/components/section/showcase/_quote.scss +7 -0
- data/_sass/modootoday/components/section/showcase/_subscribe.scss +9 -0
- data/_sass/modootoday/components/section/structure/_accordion.scss +15 -0
- data/_sass/modootoday/components/section/structure/_details.scss +15 -0
- data/_sass/modootoday/components/section/structure/_faq.scss +5 -0
- data/_sass/modootoday/components/section/structure/_filetree.scss +13 -0
- data/_sass/modootoday/components/section/structure/_params.scss +8 -0
- data/_sass/modootoday/components/section/structure/_steps.scss +13 -0
- data/_sass/modootoday/components/section/structure/_tabs.scss +21 -0
- data/_sass/modootoday/components/section/structure/_timeline.scss +10 -0
- data/_sass/modootoday/detail/_index.scss +8 -0
- data/_sass/modootoday/detail/_page.scss +25 -0
- data/_sass/modootoday/directory/_filter.scss +12 -0
- data/_sass/modootoday/directory/_grid.scss +18 -0
- data/_sass/modootoday/directory/_index.scss +11 -0
- data/_sass/modootoday/directory/_presets.scss +16 -0
- data/_sass/modootoday/docs-extra/_index.scss +7 -0
- data/_sass/modootoday/docs-extra/_page.scss +37 -0
- data/_sass/modootoday/hero/_index.scss +6 -0
- data/_sass/modootoday/hero/_layout.scss +28 -0
- data/_sass/modootoday/hero/_scene.scss +20 -0
- data/_sass/modootoday/kit/_button.scss +8 -0
- data/_sass/modootoday/layout/_page-meta.scss +9 -0
- data/_sass/modootoday/layout/_safe-area.scss +9 -0
- data/_sass/modootoday/layout/_shell.scss +56 -0
- data/_sass/modootoday/marketing/_forms.scss +11 -0
- data/_sass/modootoday/marketing/_index.scss +10 -0
- data/_sass/modootoday/marketing/_page.scss +31 -0
- data/_sass/modootoday/marketing/_pricing.scss +15 -0
- data/_sass/modootoday/pages/_actions.scss +11 -0
- data/_sass/modootoday/pages/_error.scss +7 -0
- data/_sass/modootoday/pages/_index.scss +11 -0
- data/_sass/modootoday/pages/_legal.scss +17 -0
- data/_sass/modootoday/pages/_search.scss +9 -0
- data/_sass/modootoday/pages/_shells.scss +11 -0
- data/_sass/modootoday/resume/_index.scss +5 -0
- data/_sass/modootoday/resume/_page.scss +27 -0
- data/_sass/modootoday/tokens/_emit.scss +15 -0
- data/_sass/modootoday/tokens/_primitive.scss +18 -0
- data/_sass/modootoday/tokens/_semantic.scss +37 -0
- data/_sass/modootoday/tools/_functions.scss +2 -0
- data/_sass/modootoday/tools/_img-dark.scss +12 -0
- data/_sass/modootoday/tools/_mixins.scss +8 -0
- data/_sass/modootoday.scss +40 -0
- data/assets/css/modootoday/doc.scss +10 -0
- data/assets/css/modootoday/loading.scss +8 -0
- data/assets/css/modootoday/search.scss +8 -0
- data/assets/css/modootoday/showcase/card.scss +7 -0
- data/assets/css/modootoday/showcase/cta.scss +7 -0
- data/assets/css/modootoday/showcase/gallery.scss +7 -0
- data/assets/css/modootoday/showcase/linkcards.scss +7 -0
- data/assets/css/modootoday/showcase/pricing.scss +7 -0
- data/assets/css/modootoday/showcase/quote.scss +7 -0
- data/assets/css/modootoday/showcase/subscribe.scss +7 -0
- data/assets/css/modootoday/structure/accordion.scss +7 -0
- data/assets/css/modootoday/structure/details.scss +7 -0
- data/assets/css/modootoday/structure/faq.scss +7 -0
- data/assets/css/modootoday/structure/filetree.scss +7 -0
- data/assets/css/modootoday/structure/params.scss +7 -0
- data/assets/css/modootoday/structure/steps.scss +7 -0
- data/assets/css/modootoday/structure/tabs.scss +7 -0
- data/assets/css/modootoday/structure/timeline.scss +7 -0
- data/assets/css/modootoday-blog.scss +7 -0
- data/assets/css/modootoday-detail.scss +7 -0
- data/assets/css/modootoday-directory.scss +7 -0
- data/assets/css/modootoday-docs-extra.scss +7 -0
- data/assets/css/modootoday-hero.scss +7 -0
- data/assets/css/modootoday-marketing.scss +7 -0
- data/assets/css/modootoday-pages.scss +7 -0
- data/assets/css/modootoday-resume.scss +7 -0
- data/assets/css/modootoday.scss +17 -0
- data/assets/js/modootoday/accordion.js +13 -0
- data/assets/js/modootoday/code-copy.js +29 -0
- data/assets/js/modootoday/menu.js +19 -0
- data/assets/js/modootoday/scroll-region.js +14 -0
- data/assets/js/modootoday/search-keys.js +18 -0
- data/assets/js/modootoday/search.js +31 -0
- data/assets/js/modootoday/share.js +16 -0
- data/assets/js/modootoday/tabs.js +26 -0
- data/assets/js/modootoday/theme-init.js +2 -0
- data/assets/js/modootoday/theme-toggle.js +17 -0
- data/assets/modootoday/apple-touch-icon.png +0 -0
- data/assets/modootoday/favicon-32.png +0 -0
- data/assets/modootoday/favicon.svg +1 -0
- data/assets/modootoday/hero/dawn-1280.webp +0 -0
- data/assets/modootoday/hero/dawn-640.webp +0 -0
- data/assets/modootoday/hero/dawn-960.webp +0 -0
- data/exe/modootoday-check +7 -0
- data/i18n/ar.yml +130 -0
- data/i18n/de.yml +130 -0
- data/i18n/el.yml +130 -0
- data/i18n/en.yml +131 -0
- data/i18n/es.yml +130 -0
- data/i18n/fa.yml +130 -0
- data/i18n/fr.yml +130 -0
- data/i18n/glossary.yml +61 -0
- data/i18n/id.yml +130 -0
- data/i18n/it.yml +130 -0
- data/i18n/ja.yml +130 -0
- data/i18n/ko.yml +130 -0
- data/i18n/languages.yml +25 -0
- data/i18n/ml.yml +130 -0
- data/i18n/pl.yml +130 -0
- data/i18n/pt-BR.yml +130 -0
- data/i18n/ro.yml +130 -0
- data/i18n/ru.yml +130 -0
- data/i18n/th.yml +130 -0
- data/i18n/tr.yml +130 -0
- data/i18n/uk.yml +130 -0
- data/i18n/ur-Latn.yml +130 -0
- data/i18n/vi.yml +130 -0
- data/i18n/zh-CN.yml +130 -0
- data/i18n/zh-TW.yml +130 -0
- data/lib/jekyll-theme-modootoday.rb +59 -0
- data/lib/modootoday/check/a11y/content.rb +57 -0
- data/lib/modootoday/check/a11y/new_window.rb +64 -0
- data/lib/modootoday/check/blog.rb +72 -0
- data/lib/modootoday/check/build_output.rb +39 -0
- data/lib/modootoday/check/built_parts.rb +40 -0
- data/lib/modootoday/check/cli.rb +61 -0
- data/lib/modootoday/check/component_rules.rb +54 -0
- data/lib/modootoday/check/context.rb +41 -0
- data/lib/modootoday/check/gh_render.rb +21 -0
- data/lib/modootoday/check/github_pages.rb +23 -0
- data/lib/modootoday/check/i18n.rb +92 -0
- data/lib/modootoday/check/layouts/detail.rb +52 -0
- data/lib/modootoday/check/layouts/directory.rb +36 -0
- data/lib/modootoday/check/layouts/docs_extra.rb +84 -0
- data/lib/modootoday/check/layouts/marketing.rb +64 -0
- data/lib/modootoday/check/layouts/shape.rb +38 -0
- data/lib/modootoday/check/layouts/shells.rb +47 -0
- data/lib/modootoday/check/layouts.rb +37 -0
- data/lib/modootoday/check/markdown.rb +39 -0
- data/lib/modootoday/check/page_sections.rb +72 -0
- data/lib/modootoday/check/page_syntax.rb +104 -0
- data/lib/modootoday/check/page_values.rb +30 -0
- data/lib/modootoday/check/pages.rb +31 -0
- data/lib/modootoday/check/registry.rb +69 -0
- data/lib/modootoday/check/site_config.rb +74 -0
- data/lib/modootoday/check/slots.rb +50 -0
- data/lib/modootoday/check/structured_data.rb +97 -0
- data/lib/modootoday/check/stylesheets.rb +28 -0
- data/lib/modootoday/check/twins.rb +69 -0
- data/lib/modootoday/check.rb +22 -0
- data/lib/modootoday/schema/rules.rb +49 -0
- data/lib/modootoday/schema/vocab.txt +2478 -0
- metadata +420 -0
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
mt_bundle: docs-extra
|
|
4
|
+
mt_main: mt-dx mt-dx-reference
|
|
5
|
+
---
|
|
6
|
+
{%- comment -%}reference: an API or option reference. members: [{name, signature, text, since, deprecated, id}] become a contents
|
|
7
|
+
list and one section each (h2 with the name in code, the signature, the text, since / deprecated notes); the body comes first.{%- endcomment -%}
|
|
8
|
+
<article aria-labelledby="mt-dx-title">
|
|
9
|
+
{%- include modootoday/docs-extra/head.html %}
|
|
10
|
+
{%- if page.members.size > 1 %}
|
|
11
|
+
<nav class="mt-dx-toc" aria-label="{{ mt_t_layouts_contents }}"><ul>{% for m in page.members %}<li><a href="#{{ m.id | default: m.name | slugify }}"><code>{{ m.name }}</code></a></li>{% endfor %}</ul></nav>
|
|
12
|
+
{%- endif %}
|
|
13
|
+
<div class="mt-dx-body">
|
|
14
|
+
{{ content }}
|
|
15
|
+
</div>
|
|
16
|
+
{%- for m in page.members %}{% assign _id = m.id | default: m.name | slugify %}
|
|
17
|
+
<section class="mt-dx-member" id="{{ _id }}" aria-labelledby="{{ _id }}-h">
|
|
18
|
+
<h2 id="{{ _id }}-h"><code>{{ m.name }}</code></h2>
|
|
19
|
+
{%- if m.signature %}<pre class="mt-dx-sig"><code>{{ m.signature }}</code></pre>{% endif %}
|
|
20
|
+
{%- if m.text %}{{ m.text | markdownify }}{% endif %}
|
|
21
|
+
{%- if m.since or m.deprecated %}<p class="mt-dx-meta">{% if m.since %}{{ mt_t_layouts_version }} {{ m.since }}{% endif %}{% if m.deprecated %}{% if m.since %} · {% endif %}<strong class="mt-dx-warn">{{ m.deprecated }}</strong>{% endif %}</p>{% endif %}
|
|
22
|
+
</section>
|
|
23
|
+
{%- endfor %}
|
|
24
|
+
</article>
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
mt_bundle: resume
|
|
4
|
+
mt_main: mt-cv
|
|
5
|
+
---
|
|
6
|
+
{%- include modootoday/i18n.html -%}
|
|
7
|
+
{%- comment -%}resume: a print-first CV. name (or title), headline, email, phone, location, links: [{label, url}], then the body
|
|
8
|
+
(summary), experience: [{role, org, start, end, text, highlights}], education: [{degree, school, start, end}],
|
|
9
|
+
skills: [{group, items}]. Structured data: ProfilePage whose Person has jobTitle, worksFor, alumniOf, knowsAbout, sameAs.{%- endcomment -%}
|
|
10
|
+
{%- assign _yf = "%Y.%m" -%}
|
|
11
|
+
<article aria-labelledby="mt-cv-name" class="h-card">
|
|
12
|
+
<header class="mt-cv-head">
|
|
13
|
+
<h1 id="mt-cv-name" class="p-name">{{ page.name | default: page.title }}</h1>
|
|
14
|
+
{%- if page.headline %}<p class="mt-cv-headline p-job-title">{{ page.headline }}</p>{% endif %}
|
|
15
|
+
<ul class="mt-cv-contact" role="list">
|
|
16
|
+
{%- if page.email %}<li><a class="u-email" href="mailto:{{ page.email }}">{{ page.email }}</a></li>{% endif %}
|
|
17
|
+
{%- if page.phone %}<li><a class="p-tel" href="tel:{{ page.phone | remove: ' ' }}">{{ page.phone }}</a></li>{% endif %}
|
|
18
|
+
{%- if page.location %}<li class="p-locality">{{ page.location }}</li>{% endif %}
|
|
19
|
+
{%- for l in page.links %}<li><a class="u-url" href="{% include modootoday/link.html url=l.url %}"{% include modootoday/links/attrs.html on=l.new_window target=l.target url=l.url %}>{{ l.label }}</a></li>{% endfor %}
|
|
20
|
+
</ul>
|
|
21
|
+
</header>
|
|
22
|
+
<div class="mt-cv-summary p-note">
|
|
23
|
+
{{ content }}
|
|
24
|
+
</div>
|
|
25
|
+
{%- if page.experience %}
|
|
26
|
+
<section aria-labelledby="mt-cv-exp"><h2 id="mt-cv-exp">{{ mt_t_layouts_experience }}</h2>
|
|
27
|
+
{%- for e in page.experience %}
|
|
28
|
+
<div class="mt-cv-item"><h3>{{ e.role }}<span class="mt-cv-org">{{ e.org }}</span></h3>
|
|
29
|
+
<p class="mt-cv-when">{% if e.start %}<time datetime="{{ e.start | date: '%Y-%m' }}">{{ e.start | date: _yf }}</time> – {% if e.end %}<time datetime="{{ e.end | date: '%Y-%m' }}">{{ e.end | date: _yf }}</time>{% else %}{{ mt_t_layouts_present }}{% endif %}{% endif %}</p>
|
|
30
|
+
{%- if e.text %}<p>{{ e.text }}</p>{% endif %}
|
|
31
|
+
{%- if e.highlights %}<ul>{% for h in e.highlights %}<li>{{ h }}</li>{% endfor %}</ul>{% endif %}
|
|
32
|
+
</div>
|
|
33
|
+
{%- endfor %}
|
|
34
|
+
</section>
|
|
35
|
+
{%- endif %}
|
|
36
|
+
{%- if page.education %}
|
|
37
|
+
<section aria-labelledby="mt-cv-edu"><h2 id="mt-cv-edu">{{ mt_t_layouts_education }}</h2>
|
|
38
|
+
{%- for e in page.education %}
|
|
39
|
+
<div class="mt-cv-item"><h3>{{ e.degree }}<span class="mt-cv-org">{{ e.school }}</span></h3>
|
|
40
|
+
{%- if e.start or e.end %}<p class="mt-cv-when">{% if e.start %}{{ e.start | date: _yf }} – {% endif %}{% if e.end %}{{ e.end | date: _yf }}{% else %}{{ mt_t_layouts_present }}{% endif %}</p>{% endif %}
|
|
41
|
+
</div>
|
|
42
|
+
{%- endfor %}
|
|
43
|
+
</section>
|
|
44
|
+
{%- endif %}
|
|
45
|
+
{%- if page.skills %}
|
|
46
|
+
<section aria-labelledby="mt-cv-skills"><h2 id="mt-cv-skills">{{ mt_t_layouts_skills }}</h2>
|
|
47
|
+
<dl class="mt-cv-skills">{% for s in page.skills %}<dt>{{ s.group }}</dt><dd>{{ s.items | join: ", " }}</dd>{% endfor %}</dl>
|
|
48
|
+
</section>
|
|
49
|
+
{%- endif %}
|
|
50
|
+
</article>
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: default
|
|
3
|
+
mt_bundle: docs-extra
|
|
4
|
+
mt_main: mt-dx mt-dx-roadmap
|
|
5
|
+
---
|
|
6
|
+
{%- comment -%}roadmap: items: [{title, status (now | next | later), text, url}] in three columns (Now, Next, Later), each a
|
|
7
|
+
section with an h2 and a list; the body follows. Items in another status are left out (modootoday-check reports them).{%- endcomment -%}
|
|
8
|
+
<article aria-labelledby="mt-dx-title">
|
|
9
|
+
{%- include modootoday/docs-extra/head.html %}
|
|
10
|
+
<div class="mt-dx-cols">
|
|
11
|
+
{%- assign _st = "now next later" | split: " " -%}
|
|
12
|
+
{%- for s in _st %}{% assign _it = page.items | where: "status", s %}{% assign _l = "layouts." | append: s %}
|
|
13
|
+
<section class="mt-dx-col mt-dx-col-{{ s }}" aria-labelledby="mt-dx-{{ s }}">
|
|
14
|
+
<h2 id="mt-dx-{{ s }}">{% include modootoday/t.html key=_l %} <span class="mt-dx-count">{{ _it.size }}</span></h2>
|
|
15
|
+
<ul role="list">{% for i in _it %}<li><h3>{% if i.url %}<a href="{% include modootoday/link.html url=i.url %}"{% include modootoday/links/attrs.html on=i.new_window target=i.target url=i.url %}>{{ i.title }}</a>{% else %}{{ i.title }}{% endif %}</h3>{% if i.text %}<p>{{ i.text }}</p>{% endif %}</li>{% endfor %}</ul>
|
|
16
|
+
</section>
|
|
17
|
+
{%- endfor %}
|
|
18
|
+
</div>
|
|
19
|
+
<div class="mt-dx-body">
|
|
20
|
+
{{ content }}
|
|
21
|
+
</div>
|
|
22
|
+
</article>
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
---
|
|
2
|
+
layout: wide
|
|
3
|
+
mt_main: mt-shell-wide mt-search-page
|
|
4
|
+
---
|
|
5
|
+
{%- comment -%}search: a full search page. The header search (search.js, already loaded) gives instant results;
|
|
6
|
+
the form below works without JavaScript through an external engine limited to this site (modootoday.search.fallback).{%- endcomment -%}
|
|
7
|
+
{{ content }}
|
|
8
|
+
{%- include modootoday/pages/search-form.html -%}
|
data/_layouts/team.html
ADDED
data/_layouts/twin.html
ADDED
data/_layouts/wide.html
ADDED
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
// Touch targets (44px on coarse pointers, 16px inputs so iOS does not zoom) and forced colors (Windows
|
|
2
|
+
// high contrast: visible borders on icon buttons and the search box). Imported after the components so these overrides win at equal specificity and in @layer mode.
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
@media (pointer: coarse) {
|
|
5
|
+
.mt-site-title, .mt-lang a, .mt-nav a, .mt-nav summary, .mt-menu a, .mt-menu summary, [role="tab"], .mt-code-copy, .mt-pagination a, .mt-accordion-trigger { min-height: 2.75rem; }
|
|
6
|
+
.mt-theme-toggle, .mt-lang > summary { width: 2.75rem; height: 2.75rem; }
|
|
7
|
+
.mt-code pre, pre.mt-code { padding-top: 3.6rem; }
|
|
8
|
+
}
|
|
9
|
+
@media (forced-colors: active) {
|
|
10
|
+
.mt-theme-toggle, .mt-lang > summary, .mt-code-copy { border: 1px solid ButtonText; }
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// Core: settings → tools → tokens → base → layout. Components are imported separately
|
|
2
|
+
// (assets/css/modootoday.scss picks them from modootoday.components; _sass/modootoday.scss imports all).
|
|
3
|
+
@import "settings";
|
|
4
|
+
@import "tools/functions";
|
|
5
|
+
@import "tools/mixins";
|
|
6
|
+
@import "tokens/primitive";
|
|
7
|
+
@import "tokens/semantic";
|
|
8
|
+
@if $mt-css-layers { @layer mt.tokens, mt.base, mt.layout, mt.components; }
|
|
9
|
+
@import "tokens/emit";
|
|
10
|
+
@import "base/reset";
|
|
11
|
+
@import "base/prose";
|
|
12
|
+
@import "base/code";
|
|
13
|
+
@import "base/table";
|
|
14
|
+
@import "base/bidi";
|
|
15
|
+
@import "base/interaction";
|
|
16
|
+
@import "layout/shell";
|
|
17
|
+
@import "layout/safe-area";
|
|
18
|
+
@import "layout/page-meta";
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
// Settings (all !default). Sass syntax limited to the Ruby Sass 3.7 ∩ Dart Sass subset:
|
|
2
|
+
// @import, maps, map-get/map-merge, @each, @mixin/@include, @function, !default, #{} — never @use/@forward.
|
|
3
|
+
$mt-css-layers: false !default; // true: wrap output in @layer mt.* (site CSS outside layers always wins)
|
|
4
|
+
$mt-overrides: () !default; // partial semantic overrides, light: (primary: #c2410c)
|
|
5
|
+
$mt-overrides-dark: () !default; // partial semantic overrides, dark
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Head of every optional sheet (assets/css/modootoday/**): settings and tools only, no output
|
|
2
|
+
// except the layer order, so a sheet adds just its component rules on top of the core sheet.
|
|
3
|
+
@import "settings";
|
|
4
|
+
@import "tools/functions";
|
|
5
|
+
@import "tools/mixins";
|
|
6
|
+
@if $mt-css-layers { @layer mt.tokens, mt.base, mt.layout, mt.components; }
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Right-to-left: components use logical properties (inline-start/end), so dir="rtl" mirrors them.
|
|
2
|
+
// Code and key combinations stay left-to-right inside RTL text (the copy button stays on the right of
|
|
3
|
+
// the code); inline code is isolated so punctuation does not jump.
|
|
4
|
+
@include mt-layer(base) {
|
|
5
|
+
pre, .highlight { direction: ltr; text-align: left; }
|
|
6
|
+
:not(pre) > code, kbd { unicode-bidi: isolate; }
|
|
7
|
+
.mt-kbd, div.highlighter-rouge, figure.highlight { direction: ltr; }
|
|
8
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
@include mt-layer(base) {
|
|
2
|
+
code, pre, kbd { font-family: mt(font-mono); }
|
|
3
|
+
:not(pre) > code { font-size: .875em; background: mt(muted); border: 1px solid mt(border); padding: .1em .35em; border-radius: var(--mt-p-radius-sm); }
|
|
4
|
+
pre { font-size: .875rem; line-height: 1.6; background: mt(muted); border: 1px solid mt(border); border-radius: mt(radius-lg);
|
|
5
|
+
padding: 1rem 1.25rem; margin: 0 0 1.25rem; overflow-x: auto; tab-size: 2; }
|
|
6
|
+
pre code { font-size: inherit; }
|
|
7
|
+
div.highlighter-rouge, figure.highlight { margin: 0 0 1.25rem; }
|
|
8
|
+
div.highlighter-rouge pre, figure.highlight pre { margin: 0; }
|
|
9
|
+
// Rouge token colors (kramdown syntax_highlighter: rouge), from --mt-code-* tokens.
|
|
10
|
+
// :is() keeps each token list short; same specificity as .highlight .x.
|
|
11
|
+
.highlight :is(.c, .c1, .cm, .cs, .cp, .cd) { color: mt(code-comment); font-style: italic; }
|
|
12
|
+
.highlight :is(.k, .kd, .kn, .kp, .kr, .kt, .kc, .ow, .nt) { color: mt(code-keyword); }
|
|
13
|
+
.highlight :is(.s, .s1, .s2, .sb, .sc, .sd, .se, .sh, .si, .sx, .sr, .ss), .highlight .na + .s { color: mt(code-string); }
|
|
14
|
+
.highlight :is(.m, .mi, .mf, .mh, .mo, .il, .no, .bp, .vc, .vg, .vi, .na, .py) { color: mt(code-constant); }
|
|
15
|
+
.highlight :is(.nf, .fm, .nc, .nn, .nb, .nd, .ne) { color: mt(code-function); }
|
|
16
|
+
.highlight :is(.gd, .err) { color: mt(caution); }
|
|
17
|
+
.highlight .gi { color: mt(tip); }
|
|
18
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Keyboard and touch basics: the focused <main> after the skip link, rings inside scroll regions.
|
|
2
|
+
// Overrides of component sizes (touch targets, forced colors) live in modootoday/_access.scss.
|
|
3
|
+
@include mt-layer(base) {
|
|
4
|
+
.mt-main:focus { outline: none; }
|
|
5
|
+
[tabindex="0"]:focus-visible { outline-offset: -2px; } // tabs, panels, scroll regions: ring inside the box
|
|
6
|
+
}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
@include mt-layer(base) {
|
|
2
|
+
a { color: mt(primary); text-decoration-thickness: 1px; text-underline-offset: .2em; }
|
|
3
|
+
a:hover { text-decoration-thickness: 2px; }
|
|
4
|
+
h1, h2, h3, h4 { line-height: 1.25; margin: 2.2em 0 .6em; font-weight: 650; letter-spacing: -.015em; scroll-margin-top: calc(#{mt(header-height)} + 1rem); }
|
|
5
|
+
h1 { font-size: 2.25rem; line-height: 1.15; letter-spacing: -.025em; margin-top: 0; }
|
|
6
|
+
h2 { font-size: 1.5rem; letter-spacing: -.02em; }
|
|
7
|
+
h3 { font-size: 1.15rem; }
|
|
8
|
+
h4 { font-size: 1rem; }
|
|
9
|
+
p, ul, ol, dl { margin: 0 0 1em; }
|
|
10
|
+
:where(:not([class])) > li + li { margin-top: .3em; } // flow lists only: classed grid/flex lists keep item 1 aligned
|
|
11
|
+
li > ul, li > ol { margin: .3em 0 0; }
|
|
12
|
+
blockquote { margin: 1.25rem 0; padding: .25rem 1rem; color: mt(muted-foreground); border-inline-start: 3px solid mt(border); }
|
|
13
|
+
blockquote > :last-child { margin-bottom: 0; }
|
|
14
|
+
:lang(ko) { word-break: keep-all; overflow-wrap: anywhere; }
|
|
15
|
+
hr { border: 0; border-top: 1px solid mt(border); margin: 2.5rem 0; }
|
|
16
|
+
strong { font-weight: 650; }
|
|
17
|
+
// Section rhythm in documents: a hairline above each h2 (except the first) separates dense pages like the kitchen sink.
|
|
18
|
+
.mt-doc h2 { margin-top: 3.25rem; padding-top: 2rem; border-top: 1px solid mt(border); }
|
|
19
|
+
.mt-doc > h1 + h2, .mt-doc > h2:first-child, .mt-hero + h2 { margin-top: 2.5rem; padding-top: 0; border-top: 0; }
|
|
20
|
+
.mt-doc .mt-section > h2:first-child { margin-top: 0; padding-top: 0; border-top: 0; }
|
|
21
|
+
.mt-doc .mt-section + .mt-section:not(.mt-cta) { margin-top: 3.25rem; padding-top: 2rem; border-top: 1px solid mt(border); }
|
|
22
|
+
.mt-doc h3 { margin-top: 2em; }
|
|
23
|
+
li.task-list-item { list-style: none; }
|
|
24
|
+
li.task-list-item > input { margin: 0 .5em 0 -1.4em; vertical-align: -.1em; accent-color: mt(primary); }
|
|
25
|
+
@media (max-width: 40rem) { h1 { font-size: 1.85rem; } h2 { font-size: 1.3rem; } }
|
|
26
|
+
}
|
|
27
|
+
@include mt-layer(base) {
|
|
28
|
+
// Footnotes (kramdown div.footnotes): small, start-aligned, set off by a hairline; modootoday/markdown/sections.html moves them after the last section.
|
|
29
|
+
.footnotes { margin-top: 2rem; padding-top: 1rem; border-top: 1px solid mt(border); font-size: .875rem; color: mt(muted-foreground); text-align: start; }
|
|
30
|
+
.footnotes ol { margin: 0; padding-inline-start: 1.25rem; }
|
|
31
|
+
.mt-endnotes .footnotes { margin-top: 3rem; }
|
|
32
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
@include mt-layer(base) {
|
|
2
|
+
*, *::before, *::after { box-sizing: border-box; }
|
|
3
|
+
html { -webkit-text-size-adjust: 100%; scroll-padding-top: calc(#{mt(header-height)} + var(--mt-safe-top) + 1rem); }
|
|
4
|
+
body.mt-body {
|
|
5
|
+
margin: 0; background: mt(background); color: mt(foreground);
|
|
6
|
+
font-family: mt(font-sans); font-size: mt(font-size); line-height: mt(line-height);
|
|
7
|
+
-webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility;
|
|
8
|
+
min-height: 100vh; min-height: 100dvh; display: flex; flex-direction: column;
|
|
9
|
+
}
|
|
10
|
+
img { max-width: 100%; height: auto; }
|
|
11
|
+
::selection { background: color-mix(in srgb, #{mt(primary)} 22%, transparent); }
|
|
12
|
+
:focus-visible { outline: 2px solid mt(ring); outline-offset: 2px; border-radius: 2px; }
|
|
13
|
+
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { transition: none !important; animation: none !important; } }
|
|
14
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Tables scroll horizontally (scroll area) instead of overflowing the measure.
|
|
2
|
+
@include mt-layer(base) {
|
|
3
|
+
table { display: block; max-width: 100%; width: max-content; overflow-x: auto; margin: 0 0 1.25rem; font-size: .9375rem;
|
|
4
|
+
border-collapse: separate; border-spacing: 0; border: 1px solid mt(border); border-radius: mt(radius-lg); }
|
|
5
|
+
th, td { padding: .6rem .9rem; border-bottom: 1px solid mt(border); vertical-align: top; }
|
|
6
|
+
tr:last-child > td { border-bottom: 0; }
|
|
7
|
+
th { white-space: nowrap; background: mt(muted); text-align: start; font-weight: 600; font-size: .875rem; }
|
|
8
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
// Post header (deck, byline, cover), series box, share, related posts.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-post-header { margin-block-end: 2rem; }
|
|
4
|
+
.mt-post-deck { margin: 0 0 1rem; font-size: 1.1875rem; line-height: 1.55; color: mt(muted-foreground); }
|
|
5
|
+
.mt-byline { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem 1rem; font-size: .875rem; color: mt(muted-foreground); }
|
|
6
|
+
.mt-byline p { display: flex; flex-wrap: wrap; align-items: center; gap: .375rem; margin: 0; }
|
|
7
|
+
.mt-byline a { color: mt(foreground); font-weight: 600; }
|
|
8
|
+
.mt-dateline { color: mt(foreground); font-weight: 700; text-transform: uppercase; letter-spacing: .03em; }
|
|
9
|
+
.mt-post-cover { margin: 1.5rem 0 0; }
|
|
10
|
+
.mt-post-cover img { display: block; inline-size: 100%; block-size: auto; border-radius: mt(radius-lg); }
|
|
11
|
+
.mt-post-cover figcaption { margin-block-start: .5rem; font-size: .8125rem; color: mt(muted-foreground); }
|
|
12
|
+
.mt-post-flags { margin: 0 0 .75rem; }
|
|
13
|
+
.mt-series { margin-block: 1.5rem; padding: 1rem 1.25rem; border: 1px solid mt(border); border-inline-start: 3px solid mt(primary); border-radius: mt(radius); background: mt(muted); }
|
|
14
|
+
.mt-series-title { display: flex; flex-wrap: wrap; justify-content: space-between; gap: .5rem; margin: 0 0 .5rem; }
|
|
15
|
+
.mt-series-title span { color: mt(muted-foreground); font-size: .875rem; }
|
|
16
|
+
.mt-series ol { margin: 0; padding-inline-start: 1.25rem; }
|
|
17
|
+
.mt-series [aria-current] { font-weight: 600; }
|
|
18
|
+
.mt-share { margin-block: 2rem 0; }
|
|
19
|
+
.mt-share-button { display: inline-flex; align-items: center; gap: .5rem; min-block-size: 44px; padding: .5rem 1rem; border: 1px solid mt(border); border-radius: 999px;
|
|
20
|
+
background: mt(background); color: mt(foreground); font: inherit; font-size: .875rem; cursor: pointer; }
|
|
21
|
+
.mt-share-button:hover { background: mt(accent); }
|
|
22
|
+
.mt-share-button:focus-visible { outline: 2px solid mt(ring); outline-offset: 2px; }
|
|
23
|
+
.mt-share-button[data-state="copied"] { border-color: mt(tip); color: mt(tip); }
|
|
24
|
+
.mt-related { margin-block-start: 3rem; padding-block-start: 1.5rem; border-block-start: 1px solid mt(border); }
|
|
25
|
+
.mt-related h2 { margin: 0; font-size: 1.25rem; }
|
|
26
|
+
.mt-post-nav { margin-block-start: 2rem; }
|
|
27
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
// Post cards and lists: list | grid | magazine. Logical properties (RTL-safe); the card is one link target (title).
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-blog, .mt-news { max-inline-size: mt(container); margin-inline: auto; }
|
|
4
|
+
.mt-post-list { display: grid; gap: 1.25rem; margin-block: 1.5rem; }
|
|
5
|
+
.mt-post-list[data-variant="grid"], .mt-post-list[data-variant="magazine"] { grid-template-columns: repeat(auto-fill, minmax(min(100%, 16rem), 1fr)); }
|
|
6
|
+
.mt-card-post { position: relative; display: flex; flex-direction: column; min-inline-size: 0; border: 1px solid mt(border); border-radius: mt(radius-lg);
|
|
7
|
+
background: mt(card); color: mt(card-foreground); overflow: hidden; transition: border-color .15s, box-shadow .15s; }
|
|
8
|
+
.mt-card-post:hover, .mt-card-post:focus-within { border-color: color-mix(in srgb, #{mt(primary)} 40%, #{mt(border)}); box-shadow: mt(shadow); }
|
|
9
|
+
.mt-card-post-body { display: flex; flex-direction: column; gap: .5rem; padding: 1rem 1.25rem 1.25rem; }
|
|
10
|
+
.mt-card-post-cover img { display: block; inline-size: 100%; aspect-ratio: 16 / 9; object-fit: cover; background: mt(muted); }
|
|
11
|
+
.mt-card-post-meta { display: flex; flex-wrap: wrap; align-items: center; gap: .25rem .75rem; margin: 0; font-size: .8125rem; color: mt(muted-foreground); }
|
|
12
|
+
.mt-card-post-kicker { color: mt(primary); font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
|
|
13
|
+
.mt-card-post-title { margin: 0; font-size: 1.125rem; line-height: 1.35; overflow-wrap: anywhere; }
|
|
14
|
+
.mt-card-post-title a { color: inherit; text-decoration: none; }
|
|
15
|
+
.mt-card-post-title a::after { content: ""; position: absolute; inset: 0; }
|
|
16
|
+
.mt-card-post-title a:focus-visible { outline: none; }
|
|
17
|
+
.mt-card-post:has(.mt-card-post-title a:focus-visible) { outline: 2px solid mt(ring); outline-offset: 2px; }
|
|
18
|
+
.mt-card-post-excerpt { margin: 0; color: mt(muted-foreground); font-size: .9375rem; line-height: 1.6; }
|
|
19
|
+
.mt-post-list[data-variant="list"] .mt-card-post-cover { display: none; }
|
|
20
|
+
.mt-card-post-featured .mt-card-post-title { font-size: 1.5rem; }
|
|
21
|
+
@media (min-width: 48rem) {
|
|
22
|
+
.mt-post-list[data-variant="list"] > .mt-card-post:has(.mt-card-post-cover) { flex-direction: row; }
|
|
23
|
+
.mt-post-list[data-variant="list"] .mt-card-post-cover { display: block; flex: 0 0 14rem; }
|
|
24
|
+
.mt-post-list[data-variant="list"] .mt-card-post-cover img { block-size: 100%; aspect-ratio: auto; }
|
|
25
|
+
.mt-post-list[data-variant="magazine"] > .mt-card-post-featured { grid-column: 1 / -1; display: grid; grid-template-columns: 3fr 2fr; }
|
|
26
|
+
.mt-post-list[data-variant="magazine"] > .mt-card-post-featured .mt-card-post-body { justify-content: center; padding: 1.5rem 2rem; }
|
|
27
|
+
.mt-card-post-featured .mt-card-post-title { font-size: 1.875rem; }
|
|
28
|
+
}
|
|
29
|
+
.mt-badge[data-variant="featured"] { background: mt(primary); color: mt(primary-foreground); }
|
|
30
|
+
.mt-pager { justify-content: space-between; align-items: center; }
|
|
31
|
+
.mt-pager-count { color: mt(muted-foreground); font-size: .875rem; }
|
|
32
|
+
.mt-avatar { border-radius: 50%; vertical-align: middle; object-fit: cover; }
|
|
33
|
+
.mt-author-card { display: flex; gap: 1rem; align-items: center; margin-block: 1rem 2rem; }
|
|
34
|
+
.mt-author-card h1 { margin: 0; }
|
|
35
|
+
.mt-author-card p { margin: .25rem 0 0; color: mt(muted-foreground); }
|
|
36
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Blog and news partials (separate bundle). Uses the core tokens (--mt-*) already on the page; emits no tokens.
|
|
2
|
+
@import "../settings";
|
|
3
|
+
@import "../tools/functions";
|
|
4
|
+
@import "../tools/mixins";
|
|
5
|
+
@import "post";
|
|
6
|
+
@import "cards";
|
|
7
|
+
@import "article";
|
|
8
|
+
@import "news";
|
|
9
|
+
@import "../tools/img-dark";
|
|
10
|
+
@include mt-img-dark('.mt-main img:not([src$=".svg"])');
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
// News front page (lead, secondary grid, latest, sections), breaking/live badges, correction, sources.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-news-masthead { margin-block-end: 1.5rem; padding-block-end: 1rem; border-block-end: 3px double mt(border); }
|
|
4
|
+
.mt-news-top { display: grid; gap: 1.25rem; }
|
|
5
|
+
.mt-news-top .mt-post-list { margin: 0; }
|
|
6
|
+
.mt-news-lead .mt-card-post-title { font-size: 1.75rem; }
|
|
7
|
+
@media (min-width: 64rem) {
|
|
8
|
+
.mt-news-top { grid-template-columns: 3fr 2fr; align-items: start; }
|
|
9
|
+
.mt-news-secondary .mt-post-list { grid-template-columns: 1fr 1fr; }
|
|
10
|
+
.mt-news-lead .mt-card-post-title { font-size: 2.25rem; }
|
|
11
|
+
}
|
|
12
|
+
.mt-news-latest, .mt-news-section { margin-block-start: 2.5rem; }
|
|
13
|
+
.mt-news-latest > h2, .mt-news-section > h2 { margin: 0; padding-block-end: .5rem; border-block-end: 2px solid mt(foreground); font-size: 1.125rem; text-transform: uppercase; letter-spacing: .04em; }
|
|
14
|
+
.mt-news-latest .mt-post-list { gap: 0; }
|
|
15
|
+
.mt-news-latest .mt-card-post { border: 0; border-block-end: 1px solid mt(border); border-radius: 0; background: none; }
|
|
16
|
+
.mt-news-latest .mt-card-post-body { padding-inline: 0; }
|
|
17
|
+
.mt-news-more { margin: 0; text-align: end; font-weight: 600; }
|
|
18
|
+
.mt-badge-breaking { background: mt(caution); color: mt(primary-foreground); font-weight: 700; text-transform: uppercase; }
|
|
19
|
+
.mt-badge-live { display: inline-flex; align-items: center; gap: .375rem; border: 1px solid mt(caution); color: mt(caution); font-weight: 700; text-transform: uppercase; }
|
|
20
|
+
.mt-live-dot { inline-size: .5rem; block-size: .5rem; border-radius: 50%; background: currentColor; animation: mt-live 1.5s ease-in-out infinite; }
|
|
21
|
+
@keyframes mt-live { 50% { opacity: .3; } }
|
|
22
|
+
@media (prefers-reduced-motion: reduce) { .mt-live-dot { animation: none; } }
|
|
23
|
+
.mt-news-sources { margin-block-start: 2rem; font-size: .9375rem; }
|
|
24
|
+
.mt-news-sources h2 { font-size: 1rem; }
|
|
25
|
+
.mt-news-credits { color: mt(muted-foreground); font-size: .875rem; }
|
|
26
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Post meta line, post footer term links and the archive (blog bundle: post, news-article and archive layouts). Logical properties (RTL-safe); term links reuse .mt-badge-tag.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-post-meta, .mt-post-terms p, .mt-archive-index ul { display: flex; flex-wrap: wrap; gap: .5rem; padding: 0; list-style: none; align-items: center; }
|
|
4
|
+
.mt-archive-index li { display: flex; margin: 0; }
|
|
5
|
+
.mt-post-meta, .mt-post-terms span, .mt-archive-count, .mt-archive-list time { color: mt(muted-foreground); }
|
|
6
|
+
.mt-post-terms { margin-block-start: 2rem; border-block-start: 1px solid mt(border); }
|
|
7
|
+
.mt-badge[href] { min-block-size: 24px; }
|
|
8
|
+
.mt-archive-list { list-style: none; padding: 0; }
|
|
9
|
+
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
// Announcement banner (modootoday.banner) above the header, and the back-to-top link in the page footer.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-banner { padding: .5rem 1rem; background: mt(primary); color: mt(primary-foreground); text-align: center; font-size: .875rem; }
|
|
4
|
+
.mt-banner p { margin: 0; }
|
|
5
|
+
.mt-banner a { color: inherit; font-weight: 600; text-underline-offset: 2px; }
|
|
6
|
+
.mt-back-to-top { display: inline-flex; align-items: center; min-height: 24px; margin-block: 2rem 0; color: mt(muted-foreground); font-size: .875rem; }
|
|
7
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Breadcrumb generated from the page URL (layout only, no Markdown).
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-breadcrumb ol { list-style: none; margin: 0 0 1.25rem; padding: 0; display: flex; flex-wrap: wrap; gap: .35rem; font-size: .8125rem; }
|
|
4
|
+
.mt-breadcrumb li + li { margin-top: 0; }
|
|
5
|
+
.mt-breadcrumb li { display: inline-flex; align-items: center; gap: .35rem; }
|
|
6
|
+
.mt-breadcrumb .mt-icon { color: mt(muted-foreground); }
|
|
7
|
+
.mt-breadcrumb a { color: mt(muted-foreground); text-decoration: none; }
|
|
8
|
+
.mt-breadcrumb a:hover { color: mt(foreground); text-decoration: underline; }
|
|
9
|
+
.mt-breadcrumb [aria-current="page"] { color: mt(foreground); font-weight: 500; }
|
|
10
|
+
}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
// Header navigation from _data/nav/<modootoday.nav>.yml (or _data/nav.yml). Scrolls sideways on small screens.
|
|
2
|
+
// Groups (items with `items:`) open as a <details> menu from 64rem; below that their links are listed inline.
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
.mt-nav { min-width: 0; overflow-x: auto; scrollbar-width: none; }
|
|
5
|
+
// Below 64rem the row scrolls sideways: fade the inline end so cut-off items read as "more".
|
|
6
|
+
.mt-nav { mask-image: linear-gradient(to right, #000 calc(100% - 2rem), transparent); }
|
|
7
|
+
[dir="rtl"] .mt-nav { mask-image: linear-gradient(to left, #000 calc(100% - 2rem), transparent); }
|
|
8
|
+
.mt-nav ul { list-style: none; margin: 0; padding: 0; display: flex; gap: .125rem; }
|
|
9
|
+
.mt-nav li + li { margin-top: 0; }
|
|
10
|
+
.mt-nav a, .mt-nav summary, .mt-menu a, .mt-menu summary { display: flex; align-items: center; min-height: 2rem; padding: .35rem .6rem; border-radius: mt(radius); font-size: .9rem; font-weight: 500;
|
|
11
|
+
color: mt(muted-foreground); text-decoration: none; white-space: nowrap; transition: color .15s, background-color .15s; }
|
|
12
|
+
.mt-nav a:hover, .mt-nav summary:hover, .mt-menu a:hover, .mt-menu[open] > summary { color: mt(foreground); background: mt(accent); }
|
|
13
|
+
.mt-nav a[aria-current="page"], .mt-nav .mt-nav-current, .mt-menu a[aria-current] { color: mt(foreground); background: mt(accent); font-weight: 600; }
|
|
14
|
+
.mt-nav-group { display: none; position: relative; }
|
|
15
|
+
.mt-menu summary { cursor: pointer; list-style: none; }
|
|
16
|
+
.mt-menu summary::-webkit-details-marker { display: none; }
|
|
17
|
+
.mt-nav summary > .mt-icon { margin-inline-start: .3em; }
|
|
18
|
+
.mt-nav a > .mt-icon { margin-inline-start: .25em; opacity: .7; }
|
|
19
|
+
.mt-nav a:focus-visible, .mt-menu a:focus-visible, .mt-menu summary:focus-visible { outline-offset: -2px; } // inside the box: the nav row scrolls
|
|
20
|
+
.mt-menu > ul { list-style: none; margin: 0; position: absolute; top: calc(100% + .4rem); inset-inline-start: 0; z-index: 30; display: block; min-width: 12rem; padding: .35rem;
|
|
21
|
+
background: mt(card); border: 1px solid mt(border); border-radius: mt(radius-lg); box-shadow: mt(shadow);
|
|
22
|
+
max-height: calc(100dvh - #{mt(header-height)} - var(--mt-safe-top) - 1rem); overflow-y: auto; overscroll-behavior: contain; }
|
|
23
|
+
.mt-menu a { color: mt(card-foreground); }
|
|
24
|
+
details.mt-lang > ul { inset-inline: auto 0; min-width: 10rem; }
|
|
25
|
+
@media (min-width: 64rem) {
|
|
26
|
+
.mt-nav, [dir="rtl"] .mt-nav { overflow: visible; flex: none; mask-image: none; }
|
|
27
|
+
.mt-nav-group { display: block; }
|
|
28
|
+
.mt-nav-flat { display: none; }
|
|
29
|
+
}
|
|
30
|
+
@media (max-width: 63.99rem) {
|
|
31
|
+
.mt-header-inner { flex-wrap: wrap; padding-top: .6rem; }
|
|
32
|
+
.mt-nav { order: 10; flex: 1 0 100%; min-width: 0; padding: 0 0 .4rem; overflow-x: auto; scrollbar-width: none; }
|
|
33
|
+
.mt-nav::-webkit-scrollbar { display: none; }
|
|
34
|
+
.mt-nav a { padding: .3rem .6rem; }
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
@include mt-layer(components) {
|
|
38
|
+
@media (min-width: 64rem) and (max-width: 79.99rem) { .mt-nav a, .mt-nav summary { padding-inline: .45rem; font-size: .875rem; } }
|
|
39
|
+
}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
// Previous / next links in nav order.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-pagination { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; margin-top: 4rem; padding-top: 2rem; border-top: 1px solid mt(border); }
|
|
4
|
+
.mt-pagination a { display: flex; flex-direction: column; gap: .15rem; text-decoration: none; padding: .9rem 1.1rem; font-weight: 600;
|
|
5
|
+
border: 1px solid mt(border); border-radius: mt(radius-lg); transition: border-color .15s, box-shadow .15s; }
|
|
6
|
+
.mt-pagination a:hover { border-color: mt(primary); box-shadow: mt(shadow-sm); }
|
|
7
|
+
.mt-pagination [rel="next"] { grid-column: 2; text-align: end; }
|
|
8
|
+
.mt-pagination [rel="next"] small { justify-content: flex-end; }
|
|
9
|
+
.mt-pagination small { display: inline-flex; align-items: center; gap: .3rem; color: mt(muted-foreground); font-weight: 500; font-size: .8125rem; }
|
|
10
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
// Light/dark toggle button (assets/js/modootoday/theme-toggle.js). Shown from the first paint when scripting is on
|
|
2
|
+
// (no header jump when the deferred script runs); the icon follows the scheme in CSS, not aria-pressed.
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
// Icon button: a moon while light, a sun while dark; the name is the aria-label.
|
|
5
|
+
.mt-theme-toggle { flex: none; display: grid; place-items: center; cursor: pointer; width: 2.25rem; height: 2.25rem; padding: 0;
|
|
6
|
+
border: 1px solid mt(border); border-radius: mt(radius); background: mt(background); color: mt(foreground); }
|
|
7
|
+
.mt-theme-toggle .mt-icon-sun, .mt-theme-toggle[hidden] { display: none; }
|
|
8
|
+
@media (scripting: enabled) { .mt-theme-toggle[hidden] { display: grid; } }
|
|
9
|
+
:root[data-theme="dark"] .mt-theme-toggle .mt-icon-sun { display: block; }
|
|
10
|
+
:root[data-theme="dark"] .mt-theme-toggle .mt-icon-moon { display: none; }
|
|
11
|
+
@media (prefers-color-scheme: dark) {
|
|
12
|
+
:root:not([data-theme="light"]) .mt-theme-toggle .mt-icon-sun { display: block; }
|
|
13
|
+
:root:not([data-theme="light"]) .mt-theme-toggle .mt-icon-moon { display: none; }
|
|
14
|
+
}
|
|
15
|
+
.mt-theme-toggle:hover { background: mt(accent); }
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
// Status badge: span.mt-badge.mt-badge-<available|partial|planned>
|
|
2
|
+
$mt-badge-variants: (available: status-available, partial: status-partial, planned: status-planned) !default;
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
.mt-badge { --mt-badge-color: #{mt(status-planned)}; --mt-badge-radius: var(--mt-p-radius-full);
|
|
5
|
+
display: inline-flex; gap: .3em; align-items: center; vertical-align: .1em; font-size: .75rem; line-height: 1.5; font-weight: 600; padding: 0 .55em;
|
|
6
|
+
border: 1px solid color-mix(in srgb, var(--mt-badge-color) 35%, transparent); border-radius: var(--mt-badge-radius); color: color-mix(in srgb, var(--mt-badge-color) 78%, #{mt(foreground)});
|
|
7
|
+
background: color-mix(in srgb, var(--mt-badge-color) 9%, transparent); white-space: nowrap; }
|
|
8
|
+
@each $name, $token in $mt-badge-variants {
|
|
9
|
+
.mt-badge-#{$name} { --mt-badge-color: #{mt($token)}; }
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
// `tag:<word>` badges
|
|
13
|
+
@include mt-layer(components) {
|
|
14
|
+
.mt-badge-tag { --mt-badge-color: #{mt(primary)}; --mt-badge-radius: #{mt(radius)}; }
|
|
15
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
// Callout (GitHub alert): blockquote.mt-callout.mt-callout-<type> [data-variant]
|
|
2
|
+
$mt-callout-variants: (note: note, tip: tip, important: important, warning: warning, caution: caution) !default;
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
.mt-callout { --mt-callout-accent: #{mt(note)}; color: mt(foreground); padding: .85rem 1.1rem; margin: 1.25rem 0;
|
|
5
|
+
border: 1px solid color-mix(in srgb, var(--mt-callout-accent) 28%, #{mt(border)}); border-inline-start: 4px solid var(--mt-callout-accent);
|
|
6
|
+
border-radius: mt(radius); background: color-mix(in srgb, var(--mt-callout-accent) 6%, #{mt(background)}); }
|
|
7
|
+
.mt-callout > p:empty { display: none; }
|
|
8
|
+
.mt-callout > :last-child { margin-bottom: 0; }
|
|
9
|
+
.mt-callout-title { display: flex; align-items: center; gap: .4rem; color: var(--mt-callout-accent); font-weight: 650; font-size: .875rem; letter-spacing: .01em; margin: 0 0 .3rem; }
|
|
10
|
+
.mt-callout pre { background: mt(background); }
|
|
11
|
+
@each $name, $token in $mt-callout-variants {
|
|
12
|
+
.mt-callout-#{$name} { --mt-callout-accent: #{mt($token)}; }
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Copy button on code blocks (assets/js/modootoday/code-copy.js).
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-code { position: relative; }
|
|
4
|
+
.mt-code-copy { position: absolute; top: .5rem; inset-inline-end: .5rem; font: inherit; font-size: .75rem; font-weight: 500; cursor: pointer; display: inline-flex; align-items: center; gap: .3rem; min-height: 1.75rem;
|
|
5
|
+
padding: .2rem .55rem; border-radius: var(--mt-p-radius-sm); border: 1px solid mt(border);
|
|
6
|
+
background: mt(background); color: mt(muted-foreground); transition: color .15s; }
|
|
7
|
+
.mt-code-copy:hover, .mt-code-copy:focus-visible { color: mt(foreground); }
|
|
8
|
+
// Narrow screens: start the code below the button so it never covers the first line of a scrolling block.
|
|
9
|
+
// Reserved whenever scripting is on, before code-copy.js adds the button, so nothing moves after load.
|
|
10
|
+
@media (max-width: 47.99rem) and (scripting: enabled) { .mt-main pre { padding-top: 2.6rem; } }
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// Code titles and diffs: `file:<name>` alone in a paragraph right before a fenced block becomes the block's title bar;
|
|
2
|
+
// ```diff blocks tint added and removed lines while keeping the +/- signs (colour is never the only cue).
|
|
3
|
+
@include mt-layer(components) {
|
|
4
|
+
.mt-code { margin: 0 0 1.25rem; }
|
|
5
|
+
.mt-code-title { margin: 0; padding: .4rem .9rem; border: 1px solid mt(border); border-bottom: 0; border-radius: mt(radius-lg) mt(radius-lg) 0 0;
|
|
6
|
+
background: mt(background); color: mt(muted-foreground); font: .8125rem/1.5 mt(font-mono); }
|
|
7
|
+
.mt-code-title + div.highlighter-rouge pre { border-start-start-radius: 0; border-start-end-radius: 0; }
|
|
8
|
+
.language-diff .gi, .language-diff .gd { display: inline-block; min-width: 100%; }
|
|
9
|
+
.language-diff .gi { background: color-mix(in srgb, #{mt(tip)} 16%, transparent); color: mt(foreground); }
|
|
10
|
+
.language-diff .gd { background: color-mix(in srgb, #{mt(caution)} 16%, transparent); color: mt(foreground); }
|
|
11
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
// CTA buttons: paragraphs that hold only links (p.mt-actions, marked in Liquid) in the hero and in c: cta sections.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin: 1.75rem 0 0; }
|
|
4
|
+
.mt-actions > a { display: inline-flex; align-items: center; height: 2.75rem; padding: 0 1.25rem; border-radius: mt(radius);
|
|
5
|
+
border: 1px solid mt(border); background: mt(background); color: mt(foreground); box-shadow: mt(shadow-sm);
|
|
6
|
+
font-size: .9375rem; font-weight: 600; text-decoration: none; transition: background-color .15s, border-color .15s, transform .15s; }
|
|
7
|
+
.mt-actions > a:hover { background: mt(accent); }
|
|
8
|
+
.mt-actions > a:first-child { background: mt(primary); border-color: mt(primary); color: mt(primary-foreground); }
|
|
9
|
+
.mt-actions > a:first-child:hover { background: color-mix(in srgb, #{mt(primary)} 88%, #{mt(foreground)}); }
|
|
10
|
+
.mt-actions > a:active { transform: translateY(1px); }
|
|
11
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Responsive embed: `embed:https://...` alone in a paragraph → a titled, lazy 16:9 iframe.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-embed { position: relative; margin: 1.5rem 0; aspect-ratio: 16 / 9; border: 1px solid mt(border); border-radius: mt(radius-lg); overflow: hidden; background: mt(muted); }
|
|
4
|
+
.mt-embed iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
|
|
5
|
+
.mt-embed iframe:focus { outline: 2px solid mt(ring); outline-offset: -2px; }
|
|
6
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
// Figure: an image alone in a paragraph followed by a paragraph that is only *emphasis* → figure + figcaption.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-figure { margin: 1.5rem 0; }
|
|
4
|
+
.mt-figure img { display: block; border-radius: mt(radius-lg); border: 1px solid mt(border); }
|
|
5
|
+
// Dim images a little in dark mode so a light screenshot does not glare.
|
|
6
|
+
:root[data-theme="dark"] .mt-figure img { filter: brightness(.85); }
|
|
7
|
+
@media (prefers-color-scheme: dark) { :root:not([data-theme="light"]) .mt-figure img { filter: brightness(.85); } }
|
|
8
|
+
.mt-figure figcaption { margin-top: .6rem; color: mt(muted-foreground); font-size: .875rem; text-align: center; }
|
|
9
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Footnotes (kramdown [^1]): compact reference marks and back-links that stay a 24px target.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
sup[role="doc-noteref"] a { padding: 0 .15em; text-decoration: none; font-weight: 600; }
|
|
4
|
+
.footnotes li:target { background: mt(muted); border-radius: mt(radius); }
|
|
5
|
+
.reversefootnote { display: inline-block; min-width: 24px; text-align: center; text-decoration: none; }
|
|
6
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
// Hero: everything before the first ## when sections: is set.
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-hero { position: relative; padding: 2rem 0 1rem; }
|
|
4
|
+
.mt-hero h1 { font-size: unquote("clamp(2.25rem, 1.5rem + 3vw, 3.5rem)"); line-height: 1.08; letter-spacing: -.035em; font-weight: 750; margin-bottom: 1.25rem; }
|
|
5
|
+
.mt-hero > p:first-of-type { font-size: 1.2rem; line-height: 1.6; color: mt(muted-foreground); max-width: 40rem; }
|
|
6
|
+
.mt-section { padding: mt(space-section) 0 0; }
|
|
7
|
+
.mt-section > h2:first-child { margin-top: 0; }
|
|
8
|
+
}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
// Keyboard keys: `kbd:Ctrl+K` -> kbd.mt-kbd > kbd + kbd
|
|
2
|
+
@include mt-layer(components) {
|
|
3
|
+
.mt-kbd { white-space: nowrap; font: inherit; }
|
|
4
|
+
.mt-kbd kbd { font-family: mt(font-mono); font-size: .8em; padding: .1em .45em; border: 1px solid mt(border);
|
|
5
|
+
border-bottom-width: 2px; border-radius: var(--mt-p-radius-sm); background: mt(muted); box-shadow: mt(shadow-sm); color: mt(foreground); }
|
|
6
|
+
}
|