This repository has been archived on 2026-10-14. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
mortar/src/components.css
tony 43fe76158c
Mortar contribution checks / Mortar baseline and browser checks (push) Successful in 3m15s
Extract independent MIT Mortar kit and contribution workflow
2026-10-13 22:16:21 +01:00

1290 lines
27 KiB
CSS

@layer components {
[data-mortar] body {
margin: 0;
background: var(--m-paper);
color: var(--m-ink);
font-family: var(--m-font);
font-size: 15px;
line-height: 1.5;
-webkit-font-smoothing: antialiased;
}
[data-mortar] :where(button, input, select, textarea) {
font: inherit;
color: inherit;
}
[data-mortar]
:where(
button,
a,
input,
select,
textarea,
summary,
[tabindex]
):focus-visible {
outline: 2px solid var(--m-focus);
outline-offset: 3px;
}
[data-mortar] a {
color: var(--m-link);
}
[data-mortar] :where(h1, h2, h3, p, figure, dl) {
margin: 0;
}
.m-button {
display: inline-flex;
align-items: center;
justify-content: center;
gap: 8px;
min-height: var(--m-control);
padding: 4px var(--m-pad);
border: 1px solid transparent;
border-radius: var(--m-radius);
font-size: var(--m-font-size);
font-weight: 600;
line-height: 1.35;
text-decoration: none;
cursor: pointer;
}
.m-button-primary {
background: var(--m-primary);
color: var(--m-on-primary) !important;
border-color: var(--m-primary);
}
.m-button-primary:hover {
background: var(--m-primary-hover);
}
.m-button-primary:active {
background: var(--m-primary-active);
}
.m-button-secondary {
background: var(--m-surface);
color: var(--m-ink);
border-color: var(--m-line-strong);
}
.m-button-secondary:hover,
.m-button-ghost:hover {
background: var(--m-sunken);
}
.m-button-ghost {
background: transparent;
color: var(--m-secondary);
}
.m-button-danger {
background: transparent;
color: var(--m-danger);
border-color: var(--m-danger);
}
.m-button-danger:hover {
background: var(--m-sunken);
}
.m-button:active:not(:disabled) {
transform: translateY(1px);
}
.m-button:disabled {
background: var(--m-sunken);
color: var(--m-muted) !important;
border: 1px dashed var(--m-line-strong);
cursor: not-allowed;
}
.m-spinner {
width: 13px;
height: 13px;
border: 2px solid currentColor;
border-right-color: transparent;
border-radius: 50%;
animation: m-spin 0.8s linear infinite;
}
.m-field {
display: flex;
flex-direction: column;
gap: 6px;
min-width: 0;
}
.m-field > label,
.m-radio-group > legend {
font-size: 13px;
font-weight: 600;
}
.m-field p {
font-size: 12px;
color: var(--m-muted);
}
.m-input-group {
display: flex;
align-items: stretch;
border: 1px solid var(--m-line-strong);
border-radius: var(--m-radius);
background: var(--m-surface);
overflow: hidden;
}
.m-input-group:focus-within {
outline: 2px solid var(--m-focus);
outline-offset: 2px;
}
.m-input-group input {
min-width: 0;
width: 100%;
min-height: var(--m-control);
padding: 4px var(--m-pad);
border: 0;
background: transparent;
font-size: var(--m-font-size);
outline: none;
}
.m-input-group input:focus-visible {
outline: none;
}
.m-input-group > span {
display: flex;
align-items: center;
background: var(--m-sunken);
padding: 0 10px;
color: var(--m-muted);
font: 12px var(--m-mono);
}
.m-input-group[data-invalid],
.m-field [aria-invalid="true"] {
border-color: var(--m-danger);
}
.m-field select,
.m-field textarea {
min-height: var(--m-control);
padding: 6px var(--m-pad);
border: 1px solid var(--m-line-strong);
border-radius: var(--m-radius);
background: var(--m-surface);
font-size: var(--m-font-size);
}
.m-select-control {
position: relative;
display: grid;
min-width: 0;
}
.m-select-control select {
appearance: none;
width: 100%;
min-width: 0;
line-height: 1.4;
}
.m-select-control:not([data-listbox]) select {
height: var(--m-control);
padding-block: 0;
padding-inline-end: calc(var(--m-pad) + 24px);
cursor: pointer;
}
.m-select-control select:hover:not(:disabled):not([aria-invalid="true"]) {
border-color: var(--m-secondary);
}
.m-select-control svg {
position: absolute;
inset-inline-end: var(--m-pad);
top: 50%;
width: 16px;
height: 16px;
transform: translateY(-50%);
color: var(--m-secondary);
pointer-events: none;
}
.m-select-control:has(select:disabled) svg {
color: var(--m-muted);
}
@media (forced-colors: active) {
.m-select-control select {
appearance: auto;
}
.m-select-control svg {
display: none;
}
}
.m-field textarea {
min-height: 110px;
resize: vertical;
}
.m-field :disabled {
color: var(--m-muted);
background: var(--m-sunken);
cursor: not-allowed;
}
.m-error,
.m-field .m-error,
.m-tone-danger {
color: var(--m-danger);
}
.m-tone-neutral {
color: var(--m-secondary);
}
.m-tone-success {
color: var(--m-success);
}
.m-tone-warning {
color: var(--m-warning);
}
.m-choice {
display: flex;
align-items: center;
gap: 10px;
min-height: var(--m-control);
font-size: var(--m-font-size);
cursor: pointer;
}
[data-mortar] input:is([type="checkbox"], [type="radio"]) {
width: 18px;
height: 18px;
flex-shrink: 0;
accent-color: var(--m-primary);
cursor: pointer;
}
[data-mortar] input.m-switch {
appearance: none;
width: 34px;
height: 20px;
border: 1px solid var(--m-line-strong);
border-radius: 20px;
background: var(--m-sunken);
position: relative;
}
.m-switch::after {
content: "";
position: absolute;
width: 14px;
height: 14px;
top: 2px;
left: 2px;
border-radius: 50%;
background: var(--m-muted);
transition: transform 0.15s;
}
[data-mortar] input.m-switch:checked {
background: var(--m-primary);
border-color: var(--m-primary);
}
.m-switch:checked::after {
transform: translateX(14px);
background: var(--m-on-primary);
}
.m-radio-group {
border: 0;
padding: 0;
margin: 0;
display: grid;
gap: 10px;
}
.m-radio-group legend {
margin-bottom: 10px;
}
.m-radio-card {
display: flex;
align-items: start;
gap: 12px;
border: 1px solid var(--m-line);
padding: 16px;
border-radius: var(--m-radius);
cursor: pointer;
}
.m-radio-card:has(:checked) {
background: var(--m-selected);
border-color: var(--m-primary);
}
.m-radio-card strong,
.m-radio-card span > span {
display: block;
font-size: 13px;
}
.m-radio-card span > span {
color: var(--m-muted);
margin-top: 4px;
}
.m-badge {
display: inline-flex;
align-items: center;
padding: 2px 8px;
gap: 6px;
font-size: 12px;
font-weight: 600;
border: 1px solid var(--m-line);
border-radius: 20px;
}
.m-badge::before {
content: "";
width: 6px;
height: 6px;
border-radius: 50%;
background: currentColor;
}
.m-segmented {
display: inline-flex;
width: fit-content;
background: var(--m-sunken);
padding: 3px;
gap: 2px;
border-radius: var(--m-radius);
}
.m-segmented button {
border: 1px solid transparent;
background: transparent;
color: var(--m-muted);
font-size: 12px;
font-weight: 500;
border-radius: 6px;
padding: 5px 10px;
cursor: pointer;
min-height: 28px;
}
.m-segmented [aria-pressed="true"] {
background: var(--m-surface);
color: var(--m-ink);
border-color: var(--m-line);
}
.m-tabs {
display: flex;
gap: 24px;
border-bottom: 1px solid var(--m-line);
overflow-x: auto;
}
.m-tabs button {
border: 0;
border-bottom: 2px solid transparent;
background: none;
color: var(--m-muted);
font-size: 14px;
font-weight: 600;
padding: 12px 0;
white-space: nowrap;
cursor: pointer;
}
.m-tabs [aria-selected="true"] {
color: var(--m-link);
border-bottom-color: var(--m-link);
}
[role="tabpanel"]:not([hidden]) {
padding-top: 24px;
}
.m-notice {
border: 1px solid var(--m-line);
border-radius: var(--m-radius);
padding: 16px;
font-size: 14px;
}
.m-notice > div {
margin-top: 6px;
}
.m-empty {
text-align: center;
padding: 64px 24px;
}
.m-empty h3 {
font-size: 18px;
font-weight: 600;
}
.m-empty p {
color: var(--m-muted);
margin: 10px 0 20px;
}
.m-dialog {
position: fixed;
inset: 0;
z-index: 100;
}
.m-backdrop {
position: fixed;
inset: 0;
background: rgb(0 0 0 / 0.5);
}
.m-dialog-position {
position: fixed;
inset: 0;
overflow-y: auto;
display: flex;
justify-content: center;
align-items: flex-start;
padding: 24px;
}
.m-dialog-panel {
margin-block: auto;
flex-shrink: 0;
width: 100%;
max-width: 520px;
border: 1px solid var(--m-line);
border-radius: var(--m-radius-lg);
background: var(--m-surface);
padding: 24px;
box-shadow: var(--m-float);
}
.m-dialog-heading {
display: flex;
justify-content: space-between;
align-items: center;
gap: 16px;
margin-bottom: 20px;
}
.m-dialog-heading h2 {
font-size: 20px;
font-weight: 600;
}
.m-dialog-panel > .m-actions {
margin-top: 24px;
justify-content: flex-end;
}
.m-menu {
z-index: 110;
min-width: 200px;
border: 1px solid var(--m-line);
padding: 6px;
border-radius: var(--m-radius);
background: var(--m-surface);
box-shadow: var(--m-float);
--anchor-gap: 6px;
}
.m-menu button {
display: block;
width: 100%;
text-align: left;
border: 0;
background: none;
padding: 8px 10px;
border-radius: 4px;
font-size: 14px;
cursor: pointer;
}
.m-menu button[data-focus] {
background: var(--m-selected);
}
.m-menu button[data-disabled] {
color: var(--m-muted);
cursor: not-allowed;
}
.m-actions {
display: flex;
align-items: center;
flex-wrap: wrap;
gap: 10px;
}
.m-stack {
display: flex;
flex-direction: column;
gap: 20px;
}
.m-sr-only,
.m-skip {
position: absolute;
width: 1px;
height: 1px;
overflow: hidden;
clip-path: inset(50%);
white-space: nowrap;
}
.m-skip:focus {
width: auto;
height: auto;
padding: 12px;
top: 8px;
left: 8px;
clip-path: none;
z-index: 120;
background: var(--m-surface);
}
.m-app-shell {
min-height: 100vh;
background: var(--m-paper);
}
.m-sidebar {
position: fixed;
inset: 0 auto 0 0;
width: 240px;
padding: 12px;
border-right: 1px solid var(--m-line);
background: var(--m-sunken);
display: flex;
flex-direction: column;
overflow-y: auto;
z-index: 30;
}
.m-workspace {
display: flex;
align-items: center;
gap: 10px;
padding: 10px;
border: 1px solid var(--m-line);
border-radius: 10px;
background: var(--m-surface);
text-decoration: none;
}
.m-workspace strong {
font-size: 14px;
display: block;
}
.m-workspace small {
display: block;
color: var(--m-muted);
font-size: 11px;
}
.m-mark {
display: inline-block;
width: 22px;
height: 22px;
flex-shrink: 0;
border-radius: 5px;
background: var(--m-primary);
}
:is(.m-sidebar, .m-mobile-sidebar) nav {
margin-top: 18px;
display: flex;
flex-direction: column;
gap: 2px;
}
:is(.m-sidebar, .m-mobile-sidebar) nav a {
display: flex;
align-items: center;
gap: 10px;
padding: 6px 10px;
min-height: var(--m-control);
border-radius: var(--m-radius);
text-decoration: none;
font-size: var(--m-font-size);
font-weight: 500;
color: var(--m-secondary);
}
:is(.m-sidebar, .m-mobile-sidebar) nav a:hover {
background: var(--m-surface);
}
:is(.m-sidebar, .m-mobile-sidebar) nav a[aria-current="page"] {
background: var(--m-surface);
color: var(--m-link);
font-weight: 600;
}
.m-nav-marker {
width: 6px;
height: 6px;
border-radius: 2px;
background: var(--m-line-strong);
}
[aria-current="page"] .m-nav-marker {
background: currentColor;
}
.m-nav-count {
margin-left: auto;
font: 11px var(--m-mono);
color: var(--m-muted);
}
:is(.m-sidebar, .m-mobile-sidebar) nav h2 {
margin: 24px 10px 6px;
text-transform: uppercase;
font-size: 11px;
letter-spacing: 0.04em;
color: var(--m-muted);
}
.m-user {
margin-top: auto;
padding: 16px 8px 4px;
font-size: 13px;
}
.m-app-main {
margin-left: 240px;
min-width: 0;
}
.m-app-header {
display: flex;
align-items: center;
gap: 16px;
min-height: 56px;
padding: 10px 28px;
border-bottom: 1px solid var(--m-line);
background: var(--m-surface);
}
.m-header-context {
flex: 1;
min-width: 0;
color: var(--m-muted);
font-size: 13px;
}
.m-app-main > main {
padding: 28px;
}
.m-menu-trigger {
display: none;
}
.m-mobile-sidebar {
position: fixed;
inset: 0 auto 0 0;
width: min(320px, 90vw);
padding: 16px;
background: var(--m-sunken);
overflow-y: auto;
}
.m-page-heading :is(h1, h2) {
font-size: 28px;
letter-spacing: -0.025em;
line-height: 1.2;
font-weight: 600;
}
.m-page-heading p {
margin-top: 6px;
color: var(--m-muted);
font-size: 14px;
}
.m-heading-row {
display: flex;
align-items: end;
gap: 20px;
flex-wrap: wrap;
justify-content: space-between;
}
.m-page-heading nav ol {
display: flex;
gap: 8px;
margin: 0 0 12px;
padding: 0;
list-style: none;
font-size: 13px;
color: var(--m-muted);
}
.m-page-heading nav li:not(:first-child)::before {
content: "/";
margin-right: 8px;
}
.m-eyebrow {
font: 12px var(--m-mono);
color: var(--m-muted);
margin-bottom: 16px !important;
}
.m-metrics {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(160px, 1fr));
border: 1px solid var(--m-line);
border-radius: var(--m-radius-lg);
background: var(--m-surface);
overflow: hidden;
}
.m-metrics > div {
padding: 18px;
border-right: 1px solid var(--m-line);
}
.m-metrics > div:last-child {
border-right: 0;
}
.m-metrics dt {
font-size: 12px;
font-weight: 600;
color: var(--m-muted);
}
.m-metrics dd {
margin: 10px 0 0;
font-size: 26px;
font-weight: 600;
letter-spacing: -0.02em;
font-variant-numeric: tabular-nums;
}
.m-metrics span {
display: block;
margin-top: 4px;
font: 12px var(--m-mono);
}
.m-data-table {
border: 1px solid var(--m-line);
border-radius: var(--m-radius-lg);
background: var(--m-surface);
overflow: hidden;
min-width: 0;
}
.m-table-toolbar {
display: flex;
align-items: center;
justify-content: space-between;
flex-wrap: wrap;
gap: 12px;
padding: 12px;
border-bottom: 1px solid var(--m-line);
font-size: 13px;
}
.m-table-scroll {
overflow-x: auto;
}
.m-data-table table {
border-collapse: collapse;
width: 100%;
font-size: var(--m-font-size);
text-align: left;
}
.m-data-table :is(th, td) {
padding: var(--m-row-pad);
border-bottom: 1px solid var(--m-line);
white-space: nowrap;
}
.m-data-table thead th {
color: var(--m-muted);
font-size: 12px;
font-weight: 600;
background: var(--m-paper);
}
.m-data-table tbody th {
font-weight: 600;
}
.m-data-table tr:last-child :is(th, td) {
border-bottom: 0;
}
.m-data-table [data-align="right"] {
text-align: right;
font-variant-numeric: tabular-nums;
}
.m-data-table [data-selected] {
background: var(--m-selected);
}
.m-table-state {
padding: 32px;
color: var(--m-muted);
}
.m-pagination {
display: flex;
justify-content: space-between;
align-items: center;
gap: 12px;
font-size: 13px;
color: var(--m-muted);
flex-wrap: wrap;
}
.m-settings-section {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 2fr);
gap: 40px;
border-bottom: 1px solid var(--m-line);
padding: 28px 0;
}
.m-settings-section h2 {
font-size: 16px;
font-weight: 600;
}
.m-settings-section p {
margin-top: 6px;
font-size: 13px;
color: var(--m-muted);
}
.m-activity {
padding: 0;
margin: 0;
list-style: none;
}
.m-activity li {
display: flex;
align-items: start;
gap: 12px;
padding: 16px 0;
border-bottom: 1px solid var(--m-line);
font-size: 13px;
}
.m-activity li > div {
flex: 1;
}
.m-activity p,
.m-activity li > span:last-child {
color: var(--m-muted);
}
.m-activity-dot {
width: 7px;
height: 7px;
border-radius: 50%;
background: currentColor;
margin-top: 6px;
flex-shrink: 0;
}
.m-marketing-header {
max-width: 1280px;
margin: auto;
padding: 18px 32px;
display: flex;
align-items: center;
gap: 28px;
border-bottom: 1px solid var(--m-line);
}
.m-brand {
display: flex;
align-items: center;
gap: 10px;
text-decoration: none;
font-size: 17px;
font-weight: 700;
letter-spacing: -0.02em;
}
.m-marketing-header nav {
display: flex;
gap: 22px;
flex: 1;
font-size: 13px;
}
.m-marketing-header nav a {
text-decoration: none;
color: var(--m-secondary);
}
.m-marketing-header > .m-actions {
margin-left: auto;
}
.m-hero {
padding: 100px 32px 80px;
max-width: 1280px;
margin: auto;
}
.m-hero-center {
text-align: center;
}
.m-hero :is(h1, h2) {
font-size: clamp(42px, 6vw, 80px);
font-weight: 600;
letter-spacing: -0.045em;
line-height: 1.02;
text-wrap: balance;
max-width: 960px;
margin: auto;
}
.m-hero-description {
color: var(--m-secondary);
font-size: 18px;
max-width: 660px;
margin: 28px auto !important;
text-wrap: pretty;
}
.m-hero-center .m-actions {
justify-content: center;
}
.m-hero-split {
display: grid;
grid-template-columns: 1fr 1fr;
gap: 56px;
align-items: center;
}
.m-hero-split :is(h1, h2) {
font-size: clamp(40px, 5vw, 64px);
}
.m-hero-preview {
margin-top: 48px;
text-align: left;
min-width: 0;
}
.m-hero-split .m-hero-preview {
margin-top: 0;
}
.m-marketing-section,
.m-feature-section,
.m-faq {
max-width: 1280px;
margin: auto;
padding: 80px 32px;
border-top: 1px solid var(--m-line);
}
:is(.m-marketing-section, .m-feature-section, .m-faq, .m-cta) h2 {
font-size: clamp(30px, 3.5vw, 48px);
font-weight: 600;
letter-spacing: -0.035em;
line-height: 1.1;
text-wrap: balance;
max-width: 800px;
}
.m-section-description {
color: var(--m-secondary);
font-size: 16px;
margin-top: 18px !important;
max-width: 640px;
}
.m-feature-grid {
display: grid;
grid-template-columns: repeat(3, minmax(0, 1fr));
gap: 48px 40px;
margin-top: 48px;
}
.m-feature-icon {
display: grid;
place-items: center;
width: 36px;
height: 36px;
border: 1px solid var(--m-line);
border-radius: 8px;
font: 12px var(--m-mono);
margin-bottom: 16px;
}
.m-feature-grid h3 {
font-size: 16px;
font-weight: 600;
}
.m-feature-grid p,
.m-feature-section p {
color: var(--m-secondary);
font-size: 15px;
margin-top: 10px;
}
.m-feature-section {
display: grid;
grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
gap: 56px;
align-items: center;
}
.m-feature-section[data-reverse="true"] > div:first-child {
order: 2;
}
.m-feature-preview {
border: 1px solid var(--m-line);
border-radius: 12px;
padding: 28px;
background: var(--m-sunken);
min-width: 0;
}
.m-testimonial {
padding: 64px 32px;
text-align: center;
max-width: 960px;
margin: auto;
}
.m-testimonial blockquote {
font-size: clamp(24px, 3vw, 36px);
line-height: 1.3;
letter-spacing: -0.02em;
margin: 0 0 28px;
}
.m-testimonial figcaption {
display: flex;
flex-direction: column;
font-size: 14px;
}
.m-testimonial figcaption span {
color: var(--m-muted);
}
.m-logo-cloud {
padding: 40px 32px;
text-align: center;
color: var(--m-muted);
}
.m-logo-cloud > p {
font-size: 13px;
}
.m-logo-cloud ul {
display: flex;
justify-content: center;
flex-wrap: wrap;
gap: 48px;
list-style: none;
padding: 24px 0;
margin: 0;
font-size: 22px;
font-weight: 600;
}
.m-logo-cloud img {
max-height: 32px;
max-width: 140px;
}
.m-pricing > .m-segmented {
margin-top: 28px;
}
.m-pricing-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(min(100%, 260px), 1fr));
gap: 18px;
margin-top: 36px;
}
.m-pricing-grid article {
border: 1px solid var(--m-line);
border-radius: 12px;
padding: 28px;
display: flex;
flex-direction: column;
}
.m-pricing-grid article[data-featured="true"] {
background: var(--m-ink);
color: var(--m-paper);
}
.m-pricing-grid h3 {
font-size: 18px;
font-weight: 600;
}
.m-pricing-grid p {
font-size: 14px;
margin-top: 6px;
}
.m-price {
margin: 28px 0;
display: flex;
flex-direction: column;
gap: 4px;
}
.m-price strong {
font-size: 44px;
line-height: 1;
letter-spacing: -0.04em;
font-weight: 600;
}
.m-price span {
font-size: 13px;
}
.m-pricing-grid ul {
list-style: none;
padding: 0;
margin: 0 0 28px;
flex: 1;
}
.m-pricing-grid li {
font-size: 14px;
margin: 10px 0;
}
.m-pricing-grid li::before {
content: "—";
opacity: 0.6;
margin-right: 10px;
}
.m-faq {
display: grid;
grid-template-columns: 1fr 2fr;
gap: 56px;
}
.m-faq > div > div {
color: var(--m-secondary);
margin-top: 14px;
}
.m-faq details {
border-bottom: 1px solid var(--m-line);
}
.m-faq details:first-child {
border-top: 1px solid var(--m-line);
}
.m-faq summary {
display: flex;
align-items: center;
justify-content: space-between;
gap: 20px;
font-size: 17px;
font-weight: 600;
padding: 20px 0;
cursor: pointer;
list-style: none;
}
.m-faq summary::-webkit-details-marker {
display: none;
}
.m-faq summary span {
font-size: 22px;
color: var(--m-muted);
}
.m-faq [open] summary span {
transform: rotate(45deg);
}
.m-faq details > div {
color: var(--m-secondary);
padding: 0 0 22px;
font-size: 15px;
}
.m-cta {
text-align: center;
background: var(--m-ink);
color: var(--m-paper);
padding: 96px 32px;
}
.m-cta h2 {
margin: auto;
}
.m-cta p {
margin: 20px auto;
max-width: 640px;
}
.m-cta .m-actions {
justify-content: center;
margin-top: 32px;
}
.m-cta .m-button-primary {
background: var(--m-paper);
color: var(--m-ink) !important;
border-color: var(--m-paper);
}
.m-cta .m-button-secondary {
background: transparent;
color: var(--m-paper);
border-color: var(--m-paper);
}
.m-footer {
max-width: 1280px;
padding: 56px 32px 32px;
margin: auto;
}
.m-footer-grid {
display: grid;
grid-template-columns: 1.5fr repeat(4, 1fr);
gap: 32px;
}
.m-footer-grid p {
color: var(--m-muted);
margin-top: 10px;
font-size: 14px;
max-width: 260px;
}
.m-footer-grid h2 {
font-size: 13px;
font-weight: 600;
margin-bottom: 12px;
}
.m-footer-grid nav a {
display: block;
font-size: 14px;
color: var(--m-muted);
text-decoration: none;
margin-top: 8px;
}
.m-footer-bottom {
display: flex;
justify-content: space-between;
flex-wrap: wrap;
gap: 16px;
border-top: 1px solid var(--m-line);
margin-top: 56px;
padding-top: 20px;
color: var(--m-muted);
font-size: 13px;
}
.m-footer-bottom > div {
display: flex;
gap: 20px;
}
@media (max-width: 900px) {
.m-sidebar {
display: none;
}
.m-app-main {
margin-left: 0;
}
.m-menu-trigger {
display: inline-flex;
}
.m-app-header {
flex-wrap: wrap;
padding: 12px 20px;
}
.m-app-main > main {
padding: 24px 20px;
}
.m-marketing-header {
flex-wrap: wrap;
padding: 16px 20px;
gap: 16px;
}
.m-marketing-header .m-menu-trigger {
margin-left: auto;
}
.m-marketing-header > .m-actions {
margin-left: 0;
}
.m-marketing-header nav {
display: none;
order: 4;
flex-basis: 100%;
flex-direction: column;
}
.m-marketing-header nav[data-open="true"] {
display: flex;
}
.m-hero-split,
.m-feature-section,
.m-faq {
grid-template-columns: minmax(0, 1fr);
gap: 32px;
}
.m-feature-section[data-reverse="true"] > div:first-child {
order: 0;
}
.m-feature-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
gap: 32px;
}
.m-footer-grid {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.m-footer-grid > div {
grid-column: 1/-1;
}
}
@media (max-width: 540px) {
.m-input-group input,
.m-field select,
.m-field textarea {
font-size: 16px;
}
.m-hero,
.m-marketing-section,
.m-feature-section,
.m-faq {
padding: 48px 20px;
}
.m-hero-description {
font-size: 16px;
}
.m-feature-grid {
grid-template-columns: 1fr;
}
.m-settings-section {
grid-template-columns: 1fr;
gap: 20px;
}
.m-pricing-grid article {
padding: 24px;
}
.m-metrics {
grid-template-columns: repeat(2, minmax(0, 1fr));
}
.m-metrics > div {
border-bottom: 1px solid var(--m-line);
}
.m-metrics dd {
font-size: 24px;
}
}
@media (prefers-reduced-motion: reduce) {
.m-spinner {
animation: none;
}
.m-switch::after {
transition: none;
}
}
@media (pointer: coarse) {
.m-segmented button,
.m-tabs button {
min-height: 44px;
}
}
}
@keyframes m-spin {
to {
transform: rotate(360deg);
}
}
@layer components {
.m-code-block {
min-width: 0;
margin: 0;
}
.m-code-block figcaption {
margin-bottom: 0.5rem;
color: var(--m-muted);
font-size: 0.875rem;
}
.m-code-block pre {
overflow: auto;
max-height: 32rem;
padding: 1rem;
border: 1px solid var(--m-line);
border-radius: 0.5rem;
background: var(--m-sunken);
font-size: 0.875rem;
line-height: 1.6;
}
.m-preview-frame {
display: grid;
min-width: 0;
gap: 0.75rem;
}
.m-preview-frame > a {
justify-self: end;
text-decoration: underline;
}
.m-preview-frame iframe {
width: 100%;
height: 36rem;
border: 1px solid var(--m-line);
border-radius: 0.5rem;
background: var(--m-paper);
}
}