@misoto22/folio 0.16.0 → 0.17.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.
- package/dist/agent/Accordion.md +1 -1
- package/dist/agent/Actions.md +1 -1
- package/dist/agent/Alert.md +1 -1
- package/dist/agent/AppShell.md +1 -1
- package/dist/agent/ArchitectureFigure.md +1 -1
- package/dist/agent/AreaChart.md +1 -1
- package/dist/agent/Article.md +1 -1
- package/dist/agent/AspectRatio.md +1 -1
- package/dist/agent/Avatar.md +1 -1
- package/dist/agent/Badge.md +1 -1
- package/dist/agent/BarChart.md +1 -1
- package/dist/agent/BarList.md +1 -1
- package/dist/agent/BigNumber.md +1 -1
- package/dist/agent/BoxPlot.md +1 -1
- package/dist/agent/Breadcrumb.md +1 -1
- package/dist/agent/BulletChart.md +1 -1
- package/dist/agent/Button.md +1 -1
- package/dist/agent/Calendar.md +1 -1
- package/dist/agent/CalendarHeatmap.md +1 -1
- package/dist/agent/Card.md +1 -1
- package/dist/agent/Checkbox.md +1 -1
- package/dist/agent/Code.md +1 -1
- package/dist/agent/CodeBlock.md +1 -1
- package/dist/agent/Collapsible.md +1 -1
- package/dist/agent/Collection.md +1 -1
- package/dist/agent/ColorPicker.md +1 -1
- package/dist/agent/Combobox.md +1 -1
- package/dist/agent/Command.md +1 -1
- package/dist/agent/ComposedChart.md +1 -1
- package/dist/agent/Contact.md +1 -1
- package/dist/agent/Content.md +1 -1
- package/dist/agent/ContextMenu.md +1 -1
- package/dist/agent/Conversation.md +1 -1
- package/dist/agent/DataflowFigure.md +1 -1
- package/dist/agent/DatePicker.md +1 -1
- package/dist/agent/DescriptionList.md +1 -1
- package/dist/agent/Diagram.md +1 -1
- package/dist/agent/DiagramCanvas.md +1 -1
- package/dist/agent/DiagramExportMenu.md +1 -1
- package/dist/agent/DiagramInspector.md +1 -1
- package/dist/agent/DiagramLegend.md +1 -1
- package/dist/agent/DiagramMinimap.md +1 -1
- package/dist/agent/DiagramToolbar.md +1 -1
- package/dist/agent/Dialog.md +1 -1
- package/dist/agent/DropdownMenu.md +1 -1
- package/dist/agent/EmptyState.md +1 -1
- package/dist/agent/ErrorState.md +1 -1
- package/dist/agent/Evidence.md +1 -1
- package/dist/agent/Facet.md +1 -1
- package/dist/agent/Field.md +1 -1
- package/dist/agent/FigureBand.md +1 -1
- package/dist/agent/FloatingIconButton.md +1 -1
- package/dist/agent/FunnelChart.md +1 -1
- package/dist/agent/Heading.md +1 -1
- package/dist/agent/Heatmap.md +1 -1
- package/dist/agent/Histogram.md +1 -1
- package/dist/agent/Input.md +1 -1
- package/dist/agent/Kbd.md +1 -1
- package/dist/agent/LifecycleFigure.md +1 -1
- package/dist/agent/LineChart.md +1 -1
- package/dist/agent/LinkArrow.md +1 -1
- package/dist/agent/Markdown.md +1 -1
- package/dist/agent/Media.md +1 -1
- package/dist/agent/Metric.md +1 -1
- package/dist/agent/Metrics.md +1 -1
- package/dist/agent/Music.md +1 -1
- package/dist/agent/NativeSelect.md +1 -1
- package/dist/agent/NavItem.md +1 -1
- package/dist/agent/NumberField.md +1 -1
- package/dist/agent/PageHeader.md +1 -1
- package/dist/agent/Pagination.md +1 -1
- package/dist/agent/PieChart.md +1 -1
- package/dist/agent/Popover.md +1 -1
- package/dist/agent/Portfolio.md +1 -1
- package/dist/agent/PortfolioIndex.md +1 -1
- package/dist/agent/Progress.md +1 -1
- package/dist/agent/RadarChart.md +1 -1
- package/dist/agent/RadialChart.md +1 -1
- package/dist/agent/RadioGroup.md +1 -1
- package/dist/agent/Reading.md +1 -1
- package/dist/agent/Recovery.md +1 -1
- package/dist/agent/SankeyChart.md +1 -1
- package/dist/agent/ScatterChart.md +1 -1
- package/dist/agent/ScrollArea.md +1 -1
- package/dist/agent/SearchPalette.md +1 -1
- package/dist/agent/SearchableMenu.md +1 -1
- package/dist/agent/Select.md +1 -1
- package/dist/agent/Separator.md +1 -1
- package/dist/agent/SequenceFigure.md +1 -1
- package/dist/agent/Sheet.md +1 -1
- package/dist/agent/Sidebar.md +1 -1
- package/dist/agent/SiteNavigation.md +1 -1
- package/dist/agent/SiteShell.md +1 -1
- package/dist/agent/Skeleton.md +1 -1
- package/dist/agent/Slider.md +1 -1
- package/dist/agent/Sparkline.md +1 -1
- package/dist/agent/Spinner.md +1 -1
- package/dist/agent/StatusDot.md +1 -1
- package/dist/agent/StatusPill.md +1 -1
- package/dist/agent/Steps.md +1 -1
- package/dist/agent/Switch.md +1 -1
- package/dist/agent/Table.md +1 -1
- package/dist/agent/Tabs.md +1 -1
- package/dist/agent/Tag.md +1 -1
- package/dist/agent/Text.md +1 -1
- package/dist/agent/Textarea.md +1 -1
- package/dist/agent/Timeline.md +1 -1
- package/dist/agent/Timestamp.md +1 -1
- package/dist/agent/Toast.md +1 -1
- package/dist/agent/ToggleGroup.md +1 -1
- package/dist/agent/Toolbar.md +1 -1
- package/dist/agent/Tooltip.md +1 -1
- package/dist/agent/TreemapChart.md +1 -1
- package/dist/agent/WaterfallChart.md +1 -1
- package/dist/agent/Workbench.md +142 -0
- package/dist/agent/WorkflowFigure.md +1 -1
- package/dist/agent/catalog.json +51 -2
- package/dist/agent/index.md +6 -3
- package/dist/components/Badge/Badge.js +1 -1
- package/dist/components/Badge/Badge.js.map +1 -1
- package/dist/components/Button/Button.js +1 -1
- package/dist/components/Button/Button.js.map +1 -1
- package/dist/components/Heading/Heading.js +1 -1
- package/dist/components/Heading/Heading.js.map +1 -1
- package/dist/components/Tag/Tag.js +2 -2
- package/dist/components/Tag/Tag.js.map +1 -1
- package/dist/semantic.css +7 -0
- package/dist/styles.css +1 -1
- package/dist/themes.css +93 -0
- package/dist/tokens.css +16 -2
- package/dist/tokens.d.ts +7 -0
- package/dist/tokens.js +38 -2
- package/dist/tokens.json +38 -2
- package/dist/website/Workbench/Chronology.d.ts +32 -0
- package/dist/website/Workbench/Chronology.js +32 -0
- package/dist/website/Workbench/Chronology.js.map +1 -0
- package/dist/website/Workbench/ContactRow.d.ts +13 -0
- package/dist/website/Workbench/ContactRow.js +11 -0
- package/dist/website/Workbench/ContactRow.js.map +1 -0
- package/dist/website/Workbench/PhotoMosaic.d.ts +13 -0
- package/dist/website/Workbench/PhotoMosaic.js +15 -0
- package/dist/website/Workbench/PhotoMosaic.js.map +1 -0
- package/dist/website/Workbench/Reveal.d.ts +19 -0
- package/dist/website/Workbench/Reveal.js +29 -0
- package/dist/website/Workbench/Reveal.js.map +1 -0
- package/dist/website/Workbench/ToolStrip.d.ts +18 -0
- package/dist/website/Workbench/ToolStrip.js +15 -0
- package/dist/website/Workbench/ToolStrip.js.map +1 -0
- package/dist/website/Workbench/Workbench.d.ts +23 -0
- package/dist/website/Workbench/Workbench.js +22 -0
- package/dist/website/Workbench/Workbench.js.map +1 -0
- package/dist/website/Workbench/WorkbenchCard.d.ts +29 -0
- package/dist/website/Workbench/WorkbenchCard.js +21 -0
- package/dist/website/Workbench/WorkbenchCard.js.map +1 -0
- package/dist/website/Workbench/WorkbenchEntries.d.ts +22 -0
- package/dist/website/Workbench/WorkbenchEntries.js +24 -0
- package/dist/website/Workbench/WorkbenchEntries.js.map +1 -0
- package/dist/website/Workbench/WorkbenchFigure.d.ts +20 -0
- package/dist/website/Workbench/WorkbenchFigure.js +15 -0
- package/dist/website/Workbench/WorkbenchFigure.js.map +1 -0
- package/dist/website/Workbench/WorkbenchHero.d.ts +24 -0
- package/dist/website/Workbench/WorkbenchHero.js +24 -0
- package/dist/website/Workbench/WorkbenchHero.js.map +1 -0
- package/dist/website/Workbench/theme.d.ts +22 -0
- package/dist/website/Workbench/theme.js +12 -0
- package/dist/website/Workbench/theme.js.map +1 -0
- package/dist/website/index.d.ts +11 -0
- package/dist/website/index.js +11 -0
- package/dist/website/index.js.map +1 -1
- package/dist/website-collection.css +6 -6
- package/dist/website-content.css +4 -1
- package/dist/website-conversation.css +1 -1
- package/dist/website-media.css +12 -12
- package/dist/website-portfolio.css +4 -4
- package/dist/website-reading.css +10 -10
- package/dist/website-shell.css +1 -1
- package/dist/website-workbench.css +162 -0
- package/dist/website.css +1 -0
- package/package.json +1 -1
- package/skills/folio-design/rules/tokens.md +4 -2
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Workbench compositions.
|
|
3
|
+
*
|
|
4
|
+
* One grid for the whole page: 12 columns with a 24px gutter inside the page
|
|
5
|
+
* width. A section's heading takes columns 1–4 and its content an 8-column
|
|
6
|
+
* subgrid on columns 5–12, so every list, card and caption on the page shares
|
|
7
|
+
* the same vertical lines. Colour, rules and type come from the theme axes;
|
|
8
|
+
* the Workbench preset is `linen` + `ember` + `grotesk` + `quiet`, but these
|
|
9
|
+
* compositions read only roles and work under any preset.
|
|
10
|
+
*/
|
|
11
|
+
@layer components {
|
|
12
|
+
.folio-wb-section,
|
|
13
|
+
.folio-wb-hero {
|
|
14
|
+
--wb-gap: 24px;
|
|
15
|
+
max-inline-size: var(--w-page);
|
|
16
|
+
margin-inline: auto;
|
|
17
|
+
padding-inline: var(--page-pad);
|
|
18
|
+
display: grid;
|
|
19
|
+
grid-template-columns: repeat(12, minmax(0, 1fr));
|
|
20
|
+
column-gap: var(--wb-gap);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/* ─── Section ─────────────────────────────────────────────────────────── */
|
|
24
|
+
.folio-wb-section { margin-block-start: 7.5rem; }
|
|
25
|
+
.folio-wb-section:last-child { margin-block-end: 7.5rem; }
|
|
26
|
+
.folio-wb-section::before { content: ''; grid-column: 1 / -1; border-block-start: 1px solid var(--rule); margin-block-end: 2rem; }
|
|
27
|
+
.folio-wb-section-head { grid-column: 1 / span 4; display: flex; flex-direction: column; gap: 1rem; padding-inline-end: 1.5rem; }
|
|
28
|
+
.folio-wb-section-body { grid-column: 5 / -1; min-inline-size: 0; }
|
|
29
|
+
.folio-wb-heading { margin: 0; font-family: var(--font-heading); font-weight: 400; font-size: 1.375rem; line-height: 1.3; letter-spacing: -0.015em; color: var(--ink); text-wrap: pretty; }
|
|
30
|
+
.folio-wb-heading-lead { color: var(--ink-3-aa); }
|
|
31
|
+
.folio-wb-section-action a,
|
|
32
|
+
.folio-wb-link { display: inline-flex; align-items: center; min-block-size: 44px; color: var(--accent-on-muted); text-decoration: none; font-size: .9375rem; }
|
|
33
|
+
.folio-wb-section-action a:hover,
|
|
34
|
+
.folio-wb-link:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
|
|
35
|
+
|
|
36
|
+
/* ─── Hero ────────────────────────────────────────────────────────────── */
|
|
37
|
+
.folio-wb-hero { padding-block-start: clamp(4rem, 8vw, 6rem); row-gap: 3rem; align-items: end; }
|
|
38
|
+
.folio-wb-hero-copy { grid-column: 1 / span 7; display: flex; flex-direction: column; gap: 1.75rem; }
|
|
39
|
+
.folio-wb-hero-statement { font-size: clamp(1.5rem, 2.2vw, 1.75rem); line-height: 1.3; }
|
|
40
|
+
.folio-wb-hero-actions { display: flex; flex-wrap: wrap; gap: .5rem; }
|
|
41
|
+
.folio-wb-hero-stats { grid-column: 10 / -1; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--wb-gap); margin: 0; align-self: end; }
|
|
42
|
+
.folio-wb-hero-stats > div { display: flex; flex-direction: column-reverse; gap: .125rem; }
|
|
43
|
+
.folio-wb-hero-stats dd { margin: 0; font-size: 1.25rem; color: var(--ink); font-variant-numeric: tabular-nums; }
|
|
44
|
+
.folio-wb-hero-stats dt { font-size: .8125rem; color: var(--ink-3-aa); }
|
|
45
|
+
.folio-wb-hero-figure { grid-column: 1 / -1; }
|
|
46
|
+
|
|
47
|
+
/* ─── Figure ──────────────────────────────────────────────────────────── */
|
|
48
|
+
.folio-wb-figure { margin: 0; }
|
|
49
|
+
.folio-wb-figure-frame { position: relative; display: block; overflow: hidden; border-radius: var(--radius); background: var(--paper-2); aspect-ratio: 3 / 2; }
|
|
50
|
+
.folio-wb-figure[data-ratio='wide'] .folio-wb-figure-frame { aspect-ratio: 16 / 9; }
|
|
51
|
+
.folio-wb-figure[data-ratio='portrait'] .folio-wb-figure-frame { aspect-ratio: 4 / 5; }
|
|
52
|
+
.folio-wb-figure[data-ratio='panorama'] .folio-wb-figure-frame { aspect-ratio: 3 / 1; }
|
|
53
|
+
.folio-wb-figure-frame img,
|
|
54
|
+
.folio-wb-mosaic-frame img,
|
|
55
|
+
.folio-wb-card-cover img { inline-size: 100%; block-size: 100%; object-fit: cover; transition: scale var(--slow) var(--ease); }
|
|
56
|
+
.folio-wb-figure figcaption { display: flex; justify-content: space-between; gap: 1rem; margin-block-start: .75rem; font-size: .8125rem; color: var(--ink-3-aa); }
|
|
57
|
+
|
|
58
|
+
/* ─── Tools ───────────────────────────────────────────────────────────── */
|
|
59
|
+
.folio-wb-tools { max-inline-size: var(--w-page); margin: 4.5rem auto 0; padding-inline: var(--page-pad); }
|
|
60
|
+
.folio-wb-tools-label { margin: 0 0 1.25rem; text-align: center; font-size: .8125rem; color: var(--ink-3-aa); }
|
|
61
|
+
.folio-wb-tools ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(12, minmax(0, 1fr)); gap: 24px; }
|
|
62
|
+
.folio-wb-tools li { display: grid; place-items: center; block-size: 4rem; border-radius: var(--radius); background: var(--paper-2); color: var(--ink-3-aa); transition: color var(--mid) var(--ease), background-color var(--mid) var(--ease); }
|
|
63
|
+
.folio-wb-tools li:hover { color: var(--ink); background: var(--stone); }
|
|
64
|
+
.folio-wb-tools li svg { inline-size: 1.375rem; block-size: 1.375rem; }
|
|
65
|
+
|
|
66
|
+
/* ─── Cards ───────────────────────────────────────────────────────────── */
|
|
67
|
+
.folio-wb-card-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 2.5rem 24px; }
|
|
68
|
+
.folio-wb-card { position: relative; display: flex; flex-direction: column; gap: .375rem; }
|
|
69
|
+
.folio-wb-card-cover { position: relative; overflow: hidden; aspect-ratio: 16 / 10; margin-block-end: .625rem; border: 1px solid var(--rule); border-radius: var(--radius); background: var(--paper-2); transition: border-color var(--mid) var(--ease), translate var(--mid) var(--ease); }
|
|
70
|
+
.folio-wb-card-title { margin: 0; font-family: var(--font-heading); font-weight: 400; font-size: 1rem; line-height: 1.4; color: var(--ink); }
|
|
71
|
+
.folio-wb-card-title a { display: inline-flex; align-items: center; min-block-size: 44px; color: inherit; text-decoration: none; }
|
|
72
|
+
.folio-wb-card-title a::after { content: ''; position: absolute; inset: 0; border-radius: var(--radius); }
|
|
73
|
+
.folio-wb-card:has(a:focus-visible) .folio-wb-card-cover { outline: var(--focus-w) solid var(--focus); outline-offset: 2px; }
|
|
74
|
+
.folio-wb-card-description,
|
|
75
|
+
.folio-wb-card-meta { margin: 0; font-size: .875rem; line-height: 1.5; color: var(--ink-3-aa); }
|
|
76
|
+
.folio-wb-card-meta { font-size: .8125rem; }
|
|
77
|
+
.folio-wb-card:hover .folio-wb-card-cover { translate: 0 -2px; border-color: var(--rule-2); }
|
|
78
|
+
.folio-wb-card:hover .folio-wb-card-cover img,
|
|
79
|
+
.folio-wb-figure:hover .folio-wb-figure-frame img,
|
|
80
|
+
.folio-wb-mosaic-frame:hover img { scale: 1.02; }
|
|
81
|
+
.folio-wb-tile { display: grid; align-items: end; block-size: 100%; padding: 1.25rem; color: var(--paper); background-color: var(--ink); background-image: linear-gradient(color-mix(in srgb, var(--paper) 10%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--paper) 10%, transparent) 1px, transparent 1px); background-size: 24px 24px; }
|
|
82
|
+
.folio-wb-tile span { font-size: 1.25rem; letter-spacing: .08em; text-transform: uppercase; }
|
|
83
|
+
|
|
84
|
+
/* ─── Entries ─────────────────────────────────────────────────────────── */
|
|
85
|
+
.folio-wb-entries { display: grid; grid-template-columns: repeat(8, minmax(0, 1fr)); column-gap: 24px; row-gap: 2rem; }
|
|
86
|
+
.folio-wb-entries > ul { grid-column: 1 / -1; list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; }
|
|
87
|
+
.folio-wb-entries[data-has-featured] > ul { grid-column: 5 / -1; }
|
|
88
|
+
.folio-wb-entries > ul > li + li { border-block-start: 1px solid var(--rule); }
|
|
89
|
+
.folio-wb-entries > ul > li { padding-block: 1.25rem; }
|
|
90
|
+
.folio-wb-entries > ul > li:first-child { padding-block-start: 0; }
|
|
91
|
+
.folio-wb-entry-featured { grid-column: 1 / span 4; position: relative; display: flex; flex-direction: column; gap: 1rem; padding: 1.5rem; border: 1px solid var(--rule); border-radius: var(--radius); background-color: var(--paper-2); background-image: repeating-linear-gradient(to bottom, transparent 0 calc(1.625rem - 1px), var(--rule) calc(1.625rem - 1px) 1.625rem); transition: border-color var(--mid) var(--ease), translate var(--mid) var(--ease); }
|
|
92
|
+
.folio-wb-entry-featured:hover { translate: 0 -2px; border-color: var(--rule-2); }
|
|
93
|
+
.folio-wb-entry-featured h3 { margin: 0 0 auto; font-family: var(--font-heading); font-weight: 400; font-size: 1.375rem; line-height: 1.3; color: var(--ink); }
|
|
94
|
+
.folio-wb-entry-featured p { margin: 0; font-size: .9375rem; line-height: 1.625rem; color: var(--ink-2); }
|
|
95
|
+
.folio-wb-entry-featured h3 a::after { content: ''; position: absolute; inset: 0; }
|
|
96
|
+
.folio-wb-entry h3 { margin: 0; font-family: var(--font-heading); font-weight: 400; font-size: 1rem; line-height: 1.4; }
|
|
97
|
+
.folio-wb-entry h3 a,
|
|
98
|
+
.folio-wb-entry-featured h3 a { display: inline-flex; align-items: center; min-block-size: 44px; color: var(--ink); text-decoration: none; }
|
|
99
|
+
.folio-wb-entry h3 a:hover { text-decoration: underline; text-underline-offset: 4px; text-decoration-thickness: 1px; }
|
|
100
|
+
.folio-wb-entry-date { margin: 0 0 .25rem; font-size: .8125rem; color: var(--ink-3-aa); }
|
|
101
|
+
.folio-wb-entry-excerpt { margin: .375rem 0 0; font-size: .875rem; line-height: 1.5; color: var(--ink-3-aa); }
|
|
102
|
+
.folio-wb-entry-meta { margin: .375rem 0 0; font-size: .8125rem; color: var(--ink-3-aa); }
|
|
103
|
+
|
|
104
|
+
/* ─── Chronology ──────────────────────────────────────────────────────── */
|
|
105
|
+
.folio-wb-chronology { margin: 0; }
|
|
106
|
+
.folio-wb-chronology ol { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.25rem; }
|
|
107
|
+
.folio-wb-chronology li p { margin: 0 0 .375rem; font-size: .8125rem; line-height: 1.4; color: var(--ink); white-space: nowrap; }
|
|
108
|
+
.folio-wb-chronology li[data-align='start'] p { margin-inline-start: var(--start); }
|
|
109
|
+
.folio-wb-chronology li[data-align='end'] p { text-align: end; padding-inline-end: calc(100% - var(--end)); }
|
|
110
|
+
.folio-wb-chronology-org { color: var(--ink-3-aa); }
|
|
111
|
+
.folio-wb-chronology-now { color: var(--accent-on-muted); }
|
|
112
|
+
.folio-wb-chronology-bar { display: block; margin-inline-start: var(--start); block-size: .5rem; inline-size: calc(var(--end) - var(--start)); min-inline-size: .75rem; border-radius: var(--radius-pill); }
|
|
113
|
+
.folio-wb-chronology li[data-kind='role'] .folio-wb-chronology-bar { background: var(--stone); }
|
|
114
|
+
.folio-wb-chronology li[data-kind='study'] .folio-wb-chronology-bar { box-shadow: inset 0 0 0 1px var(--rule-2); }
|
|
115
|
+
.folio-wb-chronology li[data-current] .folio-wb-chronology-bar { background: linear-gradient(90deg, var(--ink) calc(100% - .5rem), var(--accent) 0); }
|
|
116
|
+
.folio-wb-chronology-axis { display: flex; overflow: hidden; margin-block-start: 1.5rem; border-block-start: 1px solid var(--rule-2); }
|
|
117
|
+
.folio-wb-chronology-axis span { flex: 1; min-inline-size: 0; white-space: nowrap; padding: .5rem 0 0 .375rem; border-inline-start: 1px solid var(--rule); font-size: .8125rem; color: var(--ink-3-aa); font-variant-numeric: tabular-nums; }
|
|
118
|
+
|
|
119
|
+
/* ─── Mosaic ──────────────────────────────────────────────────────────── */
|
|
120
|
+
.folio-wb-mosaic { display: grid; grid-template-columns: 2fr 1fr 1fr; grid-template-rows: auto auto; gap: 24px; }
|
|
121
|
+
.folio-wb-mosaic-lead { grid-row: span 2; margin: 0; display: flex; flex-direction: column; }
|
|
122
|
+
.folio-wb-mosaic-lead .folio-wb-mosaic-frame { flex: 1; }
|
|
123
|
+
.folio-wb-mosaic-frame { position: relative; overflow: hidden; border-radius: var(--radius); background: var(--paper-2); aspect-ratio: 4 / 5; }
|
|
124
|
+
.folio-wb-mosaic-lead .folio-wb-mosaic-frame { aspect-ratio: auto; min-block-size: 100%; }
|
|
125
|
+
.folio-wb-mosaic-frame > a { position: absolute; inset: 0; display: block; }
|
|
126
|
+
.folio-wb-mosaic-lead figcaption { margin-block-start: .75rem; font-size: .8125rem; color: var(--ink-3-aa); }
|
|
127
|
+
|
|
128
|
+
/* ─── Contact ─────────────────────────────────────────────────────────── */
|
|
129
|
+
.folio-wb-contact { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 1rem 2rem; }
|
|
130
|
+
.folio-wb-contact-address a { display: inline-flex; align-items: center; min-block-size: 44px; font-size: clamp(1.25rem, 2vw, 1.625rem); color: var(--ink); text-decoration: underline; text-underline-offset: 6px; text-decoration-thickness: 1px; text-decoration-color: var(--rule-2); transition: text-decoration-color var(--mid) var(--ease); }
|
|
131
|
+
.folio-wb-contact-address a:hover { text-decoration-color: var(--ink); }
|
|
132
|
+
|
|
133
|
+
|
|
134
|
+
/* ─── Reveal ──────────────────────────────────────────────────────────── */
|
|
135
|
+
.folio-wb-reveal[data-reveal] { transition: opacity calc(var(--slow) * 1.2) var(--ease), translate calc(var(--slow) * 1.2) var(--ease); }
|
|
136
|
+
.folio-wb-reveal[data-reveal='hidden'] { opacity: 0; translate: 0 12px; }
|
|
137
|
+
|
|
138
|
+
.folio-wb-visually-hidden { position: absolute; inline-size: 1px; block-size: 1px; overflow: hidden; clip-path: inset(50%); white-space: nowrap; }
|
|
139
|
+
|
|
140
|
+
/* ─── Narrow screens ──────────────────────────────────────────────────── */
|
|
141
|
+
@media (max-width: 47.5rem) {
|
|
142
|
+
.folio-wb-section { margin-block-start: 5rem; }
|
|
143
|
+
.folio-wb-section-head,
|
|
144
|
+
.folio-wb-section-body,
|
|
145
|
+
.folio-wb-hero-copy,
|
|
146
|
+
.folio-wb-hero-stats { grid-column: 1 / -1; }
|
|
147
|
+
.folio-wb-section-head { margin-block-end: 2rem; padding-inline-end: 0; }
|
|
148
|
+
.folio-wb-tools ul { grid-template-columns: repeat(6, minmax(0, 1fr)); gap: 12px; }
|
|
149
|
+
.folio-wb-card-grid { grid-template-columns: minmax(0, 1fr); }
|
|
150
|
+
.folio-wb-entries > ul,
|
|
151
|
+
.folio-wb-entries[data-has-featured] > ul,
|
|
152
|
+
.folio-wb-entry-featured { grid-column: 1 / -1; }
|
|
153
|
+
.folio-wb-mosaic { grid-template-columns: 1fr 1fr; }
|
|
154
|
+
.folio-wb-mosaic-lead { grid-column: 1 / -1; grid-row: auto; }
|
|
155
|
+
.folio-wb-mosaic-lead .folio-wb-mosaic-frame { aspect-ratio: 4 / 5; }
|
|
156
|
+
.folio-wb-chronology li p { white-space: normal; }
|
|
157
|
+
/* A long career puts a dozen years on a phone-width axis; every other
|
|
158
|
+
label keeps them legible without pushing the page sideways. */
|
|
159
|
+
.folio-wb-chronology-axis span:nth-child(even) { color: transparent; }
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
|
package/dist/website.css
CHANGED
package/package.json
CHANGED
|
@@ -63,12 +63,14 @@ not just `:root`. An unset axis is the default.
|
|
|
63
63
|
| Attribute | Values | Unset means |
|
|
64
64
|
| --- | --- | --- |
|
|
65
65
|
| `data-mode` | `light` `dark` | follows the app |
|
|
66
|
-
| `data-accent` | `clay` `cobalt` `forest` `moss` `plum` | ink |
|
|
67
|
-
| `data-
|
|
66
|
+
| `data-accent` | `clay` `cobalt` `ember` `forest` `moss` `plum` | ink |
|
|
67
|
+
| `data-action` | `ink` | accent |
|
|
68
|
+
| `data-surface` | `warm` `cool` `glass` `linen` | paper |
|
|
68
69
|
| `data-radius` | `sharp` `round` | the default ladder |
|
|
69
70
|
| `data-rules` | `quiet` `firm` | hairline |
|
|
70
71
|
| `data-type` | `grotesk` `bookish` | editorial |
|
|
71
72
|
| `data-motion` | `still` `snappy` | calm |
|
|
73
|
+
| `data-voice` | `quiet` | display |
|
|
72
74
|
| `data-density` | `compact` | comfortable |
|
|
73
75
|
|
|
74
76
|
```tsx
|