@beehexa/design-rules 0.0.0-stage → 2611.3.2
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/README.md +56 -2
- package/dist/AGENTS.md +24 -0
- package/dist/catalog.json +1814 -0
- package/dist/docs/public/_redirects +7 -0
- package/dist/docs/public/apple-touch-icon.png +0 -0
- package/dist/docs/public/brand/logos/app/apple-touch-icon.png +0 -0
- package/dist/docs/public/brand/logos/app/avatar-800.png +0 -0
- package/dist/docs/public/brand/logos/app/icon-192.png +0 -0
- package/dist/docs/public/brand/logos/app/icon-512.png +0 -0
- package/dist/docs/public/brand/logos/app/icon-maskable-512.png +0 -0
- package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-1-light.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-2-dark.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-3-white.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/beehexa-horizontal-4-graphite.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-1-light.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-2-dark.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-3-white.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/hexasync-horizontal-4-graphite.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-d-550-dark.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-d-550-light.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-design-d-550-dark.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/beehexa-design-d-550-light.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/hexasync-d-550-dark.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/hexasync-d-550-light.svg +1 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/png/beehexa-design-d-550-dark@3x.png +0 -0
- package/dist/docs/public/brand/logos/archive/d-550/ui/png/beehexa-design-d-550-light@3x.png +0 -0
- package/dist/docs/public/brand/logos/beehexa-logo.zip +0 -0
- package/dist/docs/public/brand/logos/fig/anatomy-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/anatomy-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-dark-12.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-dark-14.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-dark-28.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-dark-32.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-dark-56.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-graphite-28.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-graphite-32.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-14.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-21.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-22.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-24.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-28.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-32.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-36-7c3aed7c3aed.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-36-swap.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-36.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-light-56.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-white-20.png +0 -0
- package/dist/docs/public/brand/logos/fig/beehexa-white-32.png +0 -0
- package/dist/docs/public/brand/logos/fig/clearspace.png +0 -0
- package/dist/docs/public/brand/logos/fig/construction-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/construction-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/container-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/container-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-dark-20.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-dark-28.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-dark-48.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-light-19.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-light-28.png +0 -0
- package/dist/docs/public/brand/logos/fig/hexasync-light-48.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-graphite-14.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-graphite-16.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-light-16.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-light-24.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-light-48.png +0 -0
- package/dist/docs/public/brand/logos/fig/icon-light-92.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-bee-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-bee-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-outline-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-outline-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-stack-en.png +0 -0
- package/dist/docs/public/brand/logos/fig/meaning-stack-vi.png +0 -0
- package/dist/docs/public/brand/logos/fig/misuse-serif.png +0 -0
- package/dist/docs/public/brand/logos/icon/beehexa-icon-graphite.svg +1 -0
- package/dist/docs/public/brand/logos/icon/beehexa-icon-white.svg +1 -0
- package/dist/docs/public/brand/logos/icon/beehexa-icon-yellow.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-1-light.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-2-dark.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-3-white.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/beehexa-horizontal-4-graphite.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-1-light.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-2-dark.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-3-white.svg +1 -0
- package/dist/docs/public/brand/logos/lockups/hexasync-horizontal-4-graphite.svg +1 -0
- package/dist/docs/public/brand/logos/ui/beehexa-dark.svg +1 -0
- package/dist/docs/public/brand/logos/ui/beehexa-design-dark.svg +1 -0
- package/dist/docs/public/brand/logos/ui/beehexa-design-light.svg +1 -0
- package/dist/docs/public/brand/logos/ui/beehexa-icon-yellow.svg +1 -0
- package/dist/docs/public/brand/logos/ui/beehexa-light.svg +1 -0
- package/dist/docs/public/brand/logos/ui/hexasync-dark.svg +1 -0
- package/dist/docs/public/brand/logos/ui/hexasync-light.svg +1 -0
- package/dist/docs/public/brand/logos/ui/png/beehexa-design-dark@3x.png +0 -0
- package/dist/docs/public/brand/logos/ui/png/beehexa-design-light@3x.png +0 -0
- package/dist/docs/public/favicon.ico +0 -0
- package/dist/docs/public/favicon.svg +1 -0
- package/dist/docs/public/fonts/LICENSE-Inter.txt +93 -0
- package/dist/docs/public/fonts/LICENSE-JetBrainsMono.txt +93 -0
- package/dist/docs/public/fonts/inter-latin-ext-opsz-wght-italic.woff2 +0 -0
- package/dist/docs/public/fonts/inter-latin-ext-opsz-wght-normal.woff2 +0 -0
- package/dist/docs/public/fonts/inter-latin-opsz-wght-italic.woff2 +0 -0
- package/dist/docs/public/fonts/inter-latin-opsz-wght-normal.woff2 +0 -0
- package/dist/docs/public/fonts/inter-vietnamese-opsz-wght-italic.woff2 +0 -0
- package/dist/docs/public/fonts/inter-vietnamese-opsz-wght-normal.woff2 +0 -0
- package/dist/docs/public/fonts/jetbrains-mono-latin-ext-wght-normal.woff2 +0 -0
- package/dist/docs/public/fonts/jetbrains-mono-latin-wght-normal.woff2 +0 -0
- package/dist/docs/public/fonts/jetbrains-mono-vietnamese-wght-normal.woff2 +0 -0
- package/dist/docs/public/icon-192.png +0 -0
- package/dist/docs/public/icon-512.png +0 -0
- package/dist/docs/public/icon-maskable-512.png +0 -0
- package/dist/docs/public/robots.txt +4 -0
- package/dist/docs/public/site.webmanifest +21 -0
- package/dist/docs/scripts/color-pairs.mjs +46 -0
- package/dist/docs/scripts/contrast-exceptions.mjs +6 -0
- package/dist/docs/scripts/token-utils.d.mts +26 -0
- package/dist/docs/scripts/token-utils.mjs +114 -0
- package/dist/docs/src/brand/Beehexa-brandguide-full-mar12.pdf +0 -0
- package/dist/docs/src/brand/color+typoDirections.pdf +0 -0
- package/dist/docs/src/brand/structure-proposal.md +227 -0
- package/dist/docs/src/components/ChildPages.astro +25 -0
- package/dist/docs/src/components/CodeExample.astro +18 -0
- package/dist/docs/src/components/ColorDemo.astro +794 -0
- package/dist/docs/src/components/ColorExample.astro +32 -0
- package/dist/docs/src/components/ColorSwatch.astro +20 -0
- package/dist/docs/src/components/ComponentTabs.astro +21 -0
- package/dist/docs/src/components/DocsFooter.astro +25 -0
- package/dist/docs/src/components/HelpOptions.astro +20 -0
- package/dist/docs/src/components/IconBrowser.astro +257 -0
- package/dist/docs/src/components/IconDemo.astro +185 -0
- package/dist/docs/src/components/InDevelopment.astro +29 -0
- package/dist/docs/src/components/LayoutDemo.astro +384 -0
- package/dist/docs/src/components/Logo.astro +25 -0
- package/dist/docs/src/components/PhaseTable.astro +22 -0
- package/dist/docs/src/components/RoleGuides.astro +48 -0
- package/dist/docs/src/components/ShapeDemo.astro +239 -0
- package/dist/docs/src/components/ShapePin.astro +22 -0
- package/dist/docs/src/components/Sidebar.astro +206 -0
- package/dist/docs/src/components/SiteHeader.astro +211 -0
- package/dist/docs/src/components/SpacingDemo.astro +172 -0
- package/dist/docs/src/components/StatusBadge.astro +22 -0
- package/dist/docs/src/components/SystemAreas.astro +29 -0
- package/dist/docs/src/components/TableOfContents.astro +47 -0
- package/dist/docs/src/components/TokenTable.astro +40 -0
- package/dist/docs/src/components/TypeDemo.astro +249 -0
- package/dist/docs/src/components/logos/Fig.astro +28 -0
- package/dist/docs/src/components/logos/LogoAnatomy.astro +101 -0
- package/dist/docs/src/components/logos/LogoClearSpace.astro +81 -0
- package/dist/docs/src/components/logos/LogoColourVersions.astro +45 -0
- package/dist/docs/src/components/logos/LogoConstruction.astro +84 -0
- package/dist/docs/src/components/logos/LogoContainer.astro +84 -0
- package/dist/docs/src/components/logos/LogoHero.astro +42 -0
- package/dist/docs/src/components/logos/LogoInUse.astro +197 -0
- package/dist/docs/src/components/logos/LogoMeanings.astro +75 -0
- package/dist/docs/src/components/logos/LogoMinSize.astro +55 -0
- package/dist/docs/src/components/logos/LogoMistakes.astro +109 -0
- package/dist/docs/src/components/logos/LogoMisuse.astro +96 -0
- package/dist/docs/src/components/logos/LogoPair.astro +26 -0
- package/dist/docs/src/components/logos/LogoSvg.astro +68 -0
- package/dist/docs/src/content/components/button/accessibility.mdx +18 -0
- package/dist/docs/src/content/components/button/changelog.mdx +6 -0
- package/dist/docs/src/content/components/button/code.mdx +27 -0
- package/dist/docs/src/content/components/button/examples.mdx +21 -0
- package/dist/docs/src/content/components/button/meta.json +5 -0
- package/dist/docs/src/content/components/button/usage.mdx +18 -0
- package/dist/docs/src/content/foundations/guidelines/accessibility.mdx +19 -0
- package/dist/docs/src/content/foundations/guidelines/content.mdx +25 -0
- package/dist/docs/src/content/foundations/index.mdx +9 -0
- package/dist/docs/src/content/foundations/styles/border.mdx +89 -0
- package/dist/docs/src/content/foundations/styles/color/accessibility.mdx +32 -0
- package/dist/docs/src/content/foundations/styles/color/dark-mode.mdx +22 -0
- package/dist/docs/src/content/foundations/styles/color/index.mdx +65 -0
- package/dist/docs/src/content/foundations/styles/color/palette.mdx +57 -0
- package/dist/docs/src/content/foundations/styles/color/tokens.mdx +55 -0
- package/dist/docs/src/content/foundations/styles/color/usage.mdx +111 -0
- package/dist/docs/src/content/foundations/styles/data-visualization.mdx +11 -0
- package/dist/docs/src/content/foundations/styles/elevation.mdx +12 -0
- package/dist/docs/src/content/foundations/styles/icons/accessibility.mdx +72 -0
- package/dist/docs/src/content/foundations/styles/icons/code.mdx +171 -0
- package/dist/docs/src/content/foundations/styles/icons/index.mdx +62 -0
- package/dist/docs/src/content/foundations/styles/icons/library.mdx +19 -0
- package/dist/docs/src/content/foundations/styles/icons/usage.mdx +100 -0
- package/dist/docs/src/content/foundations/styles/illustration.mdx +9 -0
- package/dist/docs/src/content/foundations/styles/interaction-states.mdx +49 -0
- package/dist/docs/src/content/foundations/styles/layout/app-frame.mdx +81 -0
- package/dist/docs/src/content/foundations/styles/layout/breakpoints.mdx +56 -0
- package/dist/docs/src/content/foundations/styles/layout/grid.mdx +87 -0
- package/dist/docs/src/content/foundations/styles/layout/index.mdx +24 -0
- package/dist/docs/src/content/foundations/styles/layout/overlays.mdx +45 -0
- package/dist/docs/src/content/foundations/styles/layout/page-widths.mdx +38 -0
- package/dist/docs/src/content/foundations/styles/logos/downloads-and-terms.mdx +65 -0
- package/dist/docs/src/content/foundations/styles/logos/index.mdx +64 -0
- package/dist/docs/src/content/foundations/styles/logos/placement-and-containers.mdx +96 -0
- package/dist/docs/src/content/foundations/styles/logos/product-logos.mdx +56 -0
- package/dist/docs/src/content/foundations/styles/logos/using-the-logo.mdx +70 -0
- package/dist/docs/src/content/foundations/styles/motion.mdx +11 -0
- package/dist/docs/src/content/foundations/styles/opacity.mdx +9 -0
- package/dist/docs/src/content/foundations/styles/radius.mdx +98 -0
- package/dist/docs/src/content/foundations/styles/size-and-density.mdx +41 -0
- package/dist/docs/src/content/foundations/styles/spacing.mdx +70 -0
- package/dist/docs/src/content/foundations/styles/typography/code.mdx +53 -0
- package/dist/docs/src/content/foundations/styles/typography/index.mdx +58 -0
- package/dist/docs/src/content/foundations/styles/typography/usage.mdx +144 -0
- package/dist/docs/src/content/foundations/styles/typography/vietnamese.mdx +46 -0
- package/dist/docs/src/content/foundations/styles/z-index.mdx +9 -0
- package/dist/docs/src/content/foundations/tokens/all-tokens.mdx +36 -0
- package/dist/docs/src/content/foundations/tokens/index.mdx +27 -0
- package/dist/docs/src/content/get-started/content.mdx +14 -0
- package/dist/docs/src/content/get-started/design.mdx +30 -0
- package/dist/docs/src/content/get-started/develop.mdx +59 -0
- package/dist/docs/src/content/get-started/get-help.mdx +19 -0
- package/dist/docs/src/content/get-started/index.mdx +50 -0
- package/dist/docs/src/content/news/2026-10-16-site-structure.md +15 -0
- package/dist/docs/src/content/news/2026-10-20-docs-site.md +13 -0
- package/dist/docs/src/content/release-phases/index.mdx +12 -0
- package/dist/docs/src/content/tools/ai-agents.mdx +49 -0
- package/dist/docs/src/content/tools/ant-design-vue-theme.mdx +138 -0
- package/dist/docs/src/content/tools/eslint.mdx +15 -0
- package/dist/docs/src/content/tools/index.mdx +7 -0
- package/dist/docs/src/content/tools/stylelint.mdx +19 -0
- package/dist/docs/src/content-vi/foundations/styles/border.mdx +89 -0
- package/dist/docs/src/content-vi/foundations/styles/color/accessibility.mdx +32 -0
- package/dist/docs/src/content-vi/foundations/styles/color/dark-mode.mdx +22 -0
- package/dist/docs/src/content-vi/foundations/styles/color/index.mdx +65 -0
- package/dist/docs/src/content-vi/foundations/styles/color/palette.mdx +57 -0
- package/dist/docs/src/content-vi/foundations/styles/color/tokens.mdx +55 -0
- package/dist/docs/src/content-vi/foundations/styles/color/usage.mdx +111 -0
- package/dist/docs/src/content-vi/foundations/styles/data-visualization.mdx +11 -0
- package/dist/docs/src/content-vi/foundations/styles/icons/accessibility.mdx +72 -0
- package/dist/docs/src/content-vi/foundations/styles/icons/code.mdx +170 -0
- package/dist/docs/src/content-vi/foundations/styles/icons/index.mdx +62 -0
- package/dist/docs/src/content-vi/foundations/styles/icons/library.mdx +19 -0
- package/dist/docs/src/content-vi/foundations/styles/icons/usage.mdx +100 -0
- package/dist/docs/src/content-vi/foundations/styles/illustration.mdx +9 -0
- package/dist/docs/src/content-vi/foundations/styles/interaction-states.mdx +49 -0
- package/dist/docs/src/content-vi/foundations/styles/layout/app-frame.mdx +77 -0
- package/dist/docs/src/content-vi/foundations/styles/layout/breakpoints.mdx +56 -0
- package/dist/docs/src/content-vi/foundations/styles/layout/grid.mdx +87 -0
- package/dist/docs/src/content-vi/foundations/styles/layout/index.mdx +24 -0
- package/dist/docs/src/content-vi/foundations/styles/layout/page-widths.mdx +34 -0
- package/dist/docs/src/content-vi/foundations/styles/logos/downloads-and-terms.mdx +65 -0
- package/dist/docs/src/content-vi/foundations/styles/logos/index.mdx +64 -0
- package/dist/docs/src/content-vi/foundations/styles/logos/placement-and-containers.mdx +96 -0
- package/dist/docs/src/content-vi/foundations/styles/logos/product-logos.mdx +56 -0
- package/dist/docs/src/content-vi/foundations/styles/logos/using-the-logo.mdx +70 -0
- package/dist/docs/src/content-vi/foundations/styles/opacity.mdx +9 -0
- package/dist/docs/src/content-vi/foundations/styles/radius.mdx +98 -0
- package/dist/docs/src/content-vi/foundations/styles/size-and-density.mdx +41 -0
- package/dist/docs/src/content-vi/foundations/styles/spacing.mdx +70 -0
- package/dist/docs/src/content-vi/foundations/styles/typography/code.mdx +53 -0
- package/dist/docs/src/content-vi/foundations/styles/typography/index.mdx +58 -0
- package/dist/docs/src/content-vi/foundations/styles/typography/usage.mdx +144 -0
- package/dist/docs/src/content-vi/foundations/styles/typography/vietnamese.mdx +46 -0
- package/dist/docs/src/content-vi/foundations/styles/z-index.mdx +9 -0
- package/dist/docs/src/content.config.ts +68 -0
- package/dist/docs/src/lib/brand.ts +57 -0
- package/dist/docs/src/lib/contrast.ts +34 -0
- package/dist/docs/src/lib/i18n.ts +152 -0
- package/dist/docs/src/lib/icons.ts +46 -0
- package/dist/docs/src/lib/logo-geometry.ts +30 -0
- package/dist/docs/src/lib/lucide-categories.json +1 -0
- package/dist/docs/src/lib/lucide-data.ts +40 -0
- package/dist/docs/src/lib/navigation.ts +222 -0
- package/dist/docs/src/lib/release-phases.ts +10 -0
- package/dist/docs/src/lib/routes.ts +40 -0
- package/dist/docs/src/lib/token-descriptions-vi.ts +40 -0
- package/dist/docs/src/lib/tokens.ts +67 -0
- package/dist/docs/src/lib/tri-grid.ts +28 -0
- package/dist/docs/src/styles/chrome.css +122 -0
- package/dist/docs/src/styles/color.css +270 -0
- package/dist/docs/src/styles/docs.css +323 -0
- package/dist/docs/src/styles/global.css +66 -0
- package/dist/docs/src/styles/icons.css +135 -0
- package/dist/docs/src/styles/layout.css +165 -0
- package/dist/docs/src/styles/logos.css +236 -0
- package/dist/docs/src/styles/shapes.css +139 -0
- package/dist/docs/src/styles/tokens.css +461 -0
- package/dist/docs/src/styles/tokens.js +425 -0
- package/dist/docs/src/styles/typography.css +91 -0
- package/dist/docs/tokens/border.json +26 -0
- package/dist/docs/tokens/breakpoints.json +8 -0
- package/dist/docs/tokens/color.json +1350 -0
- package/dist/docs/tokens/elevation.json +26 -0
- package/dist/docs/tokens/layout.json +29 -0
- package/dist/docs/tokens/motion.json +12 -0
- package/dist/docs/tokens/radius.json +44 -0
- package/dist/docs/tokens/size.json +13 -0
- package/dist/docs/tokens/spacing.json +18 -0
- package/dist/docs/tokens/states.json +12 -0
- package/dist/docs/tokens/typography.json +220 -0
- package/dist/index.d.ts +19 -0
- package/dist/index.js +1823 -0
- package/package.json +31 -4
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/* Spacing and Layout pages: the scale, spacing redlines, page anatomy, page widths, grid and breakpoints.
|
|
2
|
+
Sizes come from the spacing tokens, so the illustrations show the real values. */
|
|
3
|
+
|
|
4
|
+
.sp-figure, .ly-figure { margin: 0 0 var(--bh-space-300); }
|
|
5
|
+
.sp-figure > figcaption, .ly-figure > figcaption { margin-top: var(--bh-space-100); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
6
|
+
.sp-figure > figcaption b, .ly-figure > figcaption b { color: var(--c-ink); }
|
|
7
|
+
|
|
8
|
+
/* Tinted space in redlines. Blue is the usual colour of measurements, and it reads in both themes. */
|
|
9
|
+
.sp-root, .ly-root {
|
|
10
|
+
--sp-mark: var(--bh-color-background-info-subtle);
|
|
11
|
+
--sp-mark-edge: var(--bh-color-border-info-subtle);
|
|
12
|
+
--sp-mark-ink: var(--bh-color-text-info);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Lists drawn as figures: no list indent. */
|
|
16
|
+
.prose .sp-scale, .prose .ly-legend, .prose .ly-bp { padding: 0; }
|
|
17
|
+
|
|
18
|
+
/* Scale */
|
|
19
|
+
.sp-scale { display: grid; margin: 0 0 var(--bh-space-300); padding: 0; border-top: var(--bh-border-width-default) solid var(--c-line); list-style: none; }
|
|
20
|
+
.prose .sp-scale li { display: grid; grid-template-columns: 9.5rem 3.5rem 5.5rem minmax(0, 1fr); align-items: center; gap: var(--bh-space-200); margin: 0; padding: var(--bh-space-150) 0; border-bottom: var(--bh-border-width-default) solid var(--c-line); }
|
|
21
|
+
.sp-name code { font: var(--bh-font-code-default); }
|
|
22
|
+
.sp-var { display: block; margin-top: var(--bh-space-050); color: var(--c-muted); font: var(--bh-font-body-small); overflow-wrap: anywhere; }
|
|
23
|
+
.sp-px { color: var(--c-ink); font: var(--bh-font-label-default); font-variant-numeric: tabular-nums; }
|
|
24
|
+
.sp-px small { display: block; color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
25
|
+
.sp-bar { display: block; height: var(--bh-space-300); background: var(--bh-color-background-info-bold); border-radius: var(--bh-radius-050); }
|
|
26
|
+
.sp-bar.is-zero { width: var(--bh-border-width-default); background: var(--c-line); }
|
|
27
|
+
.sp-bar.is-hairline { border-radius: 0; }
|
|
28
|
+
.sp-use { color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
29
|
+
@container prose (width < 560px) {
|
|
30
|
+
.prose .sp-scale li { grid-template-columns: minmax(0, 1fr) auto; gap: var(--bh-space-100) var(--bh-space-200); }
|
|
31
|
+
.sp-px { text-align: right; }
|
|
32
|
+
.sp-bar-cell, .sp-use { grid-column: 1 / -1; }
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/* Redline card */
|
|
36
|
+
.sp-stage { display: grid; place-items: center; padding: var(--bh-space-300) var(--bh-space-100); border: var(--bh-border-width-default) solid var(--c-line); border-radius: var(--bh-radius-150); background: var(--c-surf); }
|
|
37
|
+
.sp-card { width: 100%; max-width: 26rem; padding: var(--bh-space-300); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-150); background: linear-gradient(var(--bh-color-surface), var(--bh-color-surface)) content-box, var(--sp-mark); }
|
|
38
|
+
.sp-stack { display: flex; flex-direction: column; }
|
|
39
|
+
.sp-row { display: flex; align-items: center; }
|
|
40
|
+
.sp-row.is-end { justify-content: flex-end; }
|
|
41
|
+
.sp-gap { position: relative; flex: none; background: var(--sp-mark); }
|
|
42
|
+
.sp-gap.is-v { width: 100%; }
|
|
43
|
+
.sp-gap.is-h { align-self: stretch; }
|
|
44
|
+
.sp-tag { position: absolute; z-index: 1; padding: 0 var(--bh-space-050); border-radius: var(--bh-radius-050); color: var(--sp-mark-ink); background: var(--bh-color-surface); box-shadow: 0 0 0 var(--bh-border-width-default) var(--sp-mark-edge); white-space: nowrap; font: var(--bh-font-label-small); font-variant-numeric: tabular-nums; }
|
|
45
|
+
.sp-gap.is-v > .sp-tag { top: 50%; right: calc(-1 * var(--bh-space-150)); transform: translate(50%, -50%); }
|
|
46
|
+
.sp-gap.is-h > .sp-tag { bottom: 100%; left: 50%; transform: translate(-50%, calc(-1 * var(--bh-space-050))); }
|
|
47
|
+
.sp-card-pad { position: relative; }
|
|
48
|
+
.sp-card-pad > .sp-tag { top: calc(-1 * var(--bh-space-300)); right: 0; transform: translateY(calc(-50% + var(--bh-space-150))); }
|
|
49
|
+
.sp-gap.is-h > .sp-tag.is-below { top: 100%; bottom: auto; transform: translate(-50%, 0); }
|
|
50
|
+
.sp-icon { flex: none; width: var(--bh-space-200); height: var(--bh-space-200); color: var(--bh-color-icon); }
|
|
51
|
+
.sp-title { color: var(--bh-color-text); font: var(--bh-font-heading-small); }
|
|
52
|
+
.sp-desc { color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
53
|
+
.sp-label { color: var(--bh-color-text); font: var(--bh-font-label-default); }
|
|
54
|
+
.sp-input { display: flex; align-items: stretch; min-width: 0; height: var(--bh-space-400); border: var(--bh-border-width-default) solid var(--bh-color-border-bold); border-radius: var(--bh-radius-100); background: var(--bh-color-surface); }
|
|
55
|
+
.sp-input > span:not(.sp-gap) { align-self: center; overflow: hidden; color: var(--bh-color-text-subtle); white-space: nowrap; text-overflow: ellipsis; font: var(--bh-font-body-default); }
|
|
56
|
+
.sp-input .sp-gap.is-h { margin: calc(-1 * var(--bh-border-width-default)) 0; }
|
|
57
|
+
.sp-btn { display: inline-flex; flex: none; align-items: center; height: var(--bh-size-control-default); padding: 0 var(--bh-space-200); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-100); color: var(--bh-color-text); background: var(--bh-color-surface); font: var(--bh-font-label-default); }
|
|
58
|
+
.sp-btn.is-primary { border-color: var(--bh-color-background-neutral-bold); color: var(--bh-color-text-inverse); background: var(--bh-color-background-neutral-bold); }
|
|
59
|
+
.sp-btn.is-small { height: var(--bh-size-control-small); padding: 0 var(--bh-space-100); font: var(--bh-font-label-small); }
|
|
60
|
+
.sp-btn.is-large { height: var(--bh-size-control-large); padding: 0 var(--bh-space-200); }
|
|
61
|
+
.sp-legend { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bh-space-100); }
|
|
62
|
+
.sp-swatch { display: inline-block; width: var(--bh-space-200); height: var(--bh-space-200); border-radius: var(--bh-radius-050); background: var(--sp-mark); box-shadow: inset 0 0 0 var(--bh-border-width-default) var(--sp-mark-edge); vertical-align: middle; }
|
|
63
|
+
@container prose (min-width: 560px) { .sp-stage { padding: var(--bh-space-400) var(--bh-space-200); } .sp-gap.is-v > .sp-tag { right: 0; transform: translate(calc(100% + var(--bh-space-300) + var(--bh-space-050)), -50%); } }
|
|
64
|
+
|
|
65
|
+
/* Padding and gap */
|
|
66
|
+
.sp-pair { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
67
|
+
.sp-pair > figure { margin: 0; border: var(--bh-border-width-default) solid var(--c-line); border-radius: var(--bh-radius-150); overflow: hidden; }
|
|
68
|
+
.sp-pair .sp-pair-stage { display: grid; place-items: center; min-height: 8rem; padding: var(--bh-space-300) var(--bh-space-200); background: var(--c-surf); }
|
|
69
|
+
.sp-pair figcaption { display: grid; gap: var(--bh-space-050); padding: var(--bh-space-150) var(--bh-space-200); color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
70
|
+
.sp-pair figcaption b { color: var(--c-ink); font: var(--bh-font-label-default); }
|
|
71
|
+
.sp-padbox { padding: var(--bh-space-300); border: var(--bh-border-width-default) dashed var(--sp-mark-edge); border-radius: var(--bh-radius-100); background: linear-gradient(var(--bh-color-surface), var(--bh-color-surface)) content-box, var(--sp-mark); color: var(--bh-color-text); font: var(--bh-font-label-default); }
|
|
72
|
+
.sp-chip { display: inline-flex; align-items: center; height: var(--bh-space-400); padding: 0 var(--bh-space-150); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-100); color: var(--bh-color-text); background: var(--bh-color-surface); white-space: nowrap; font: var(--bh-font-label-default); }
|
|
73
|
+
@container prose (min-width: 640px) { .sp-pair { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
|
74
|
+
|
|
75
|
+
/* Do / Don't */
|
|
76
|
+
.sp-dd { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
77
|
+
.sp-dd-panel { margin: 0; border: var(--bh-border-width-default) solid var(--c-line); border-radius: var(--bh-radius-150); overflow: hidden; }
|
|
78
|
+
.sp-dd-panel figcaption { padding: var(--bh-space-100) var(--bh-space-200); border-bottom: 2px solid; font: var(--bh-font-label-default); }
|
|
79
|
+
.sp-dd-panel.is-do figcaption { border-color: var(--bh-color-border-success); color: var(--bh-color-text-success); }
|
|
80
|
+
.sp-dd-panel.is-dont figcaption { border-color: var(--bh-color-border-danger); color: var(--bh-color-text-danger); }
|
|
81
|
+
.sp-dd-stage { display: grid; place-items: center; min-height: 9rem; padding: var(--bh-space-200); background: var(--c-surf); }
|
|
82
|
+
.sp-dd-panel p { margin: 0; padding: var(--bh-space-150) var(--bh-space-200); color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
83
|
+
.sp-mini { display: flex; flex-direction: column; width: 100%; max-width: 15rem; }
|
|
84
|
+
.sp-mini .sp-input { height: var(--bh-space-400); }
|
|
85
|
+
.sp-mini-group { color: var(--bh-color-text); font: var(--bh-font-heading-xsmall); }
|
|
86
|
+
.sp-badge-host { position: relative; display: inline-grid; place-items: center; width: var(--bh-space-400); height: var(--bh-space-400); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-100); background: var(--bh-color-surface); color: var(--bh-color-icon); }
|
|
87
|
+
.sp-badge { position: absolute; top: var(--bh-space-025); right: var(--bh-space-025); width: var(--bh-space-100); height: var(--bh-space-100); border-radius: var(--bh-radius-full); background: var(--bh-color-background-danger-bold); }
|
|
88
|
+
.sp-dd-row { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; }
|
|
89
|
+
@container prose (min-width: 640px) { .sp-dd { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
|
90
|
+
|
|
91
|
+
/* Layout: SVG diagrams drawn at real pixel sizes and scaled to fit */
|
|
92
|
+
.ly-pair { display: grid; grid-template-columns: minmax(0, 3fr) minmax(0, 1fr); align-items: start; gap: var(--bh-space-300); margin: 0 0 var(--bh-space-300); }
|
|
93
|
+
.ly-pair > figure { margin: 0; }
|
|
94
|
+
.ly-pair figcaption { margin-top: var(--bh-space-100); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
95
|
+
.ly-pair figcaption b { color: var(--c-ink); }
|
|
96
|
+
.ly-svg { display: block; width: 100%; height: auto; border: var(--bh-border-width-default) solid var(--c-line); border-radius: var(--bh-radius-100); background: var(--bh-color-surface-page); }
|
|
97
|
+
.ly-phone .ly-svg { max-width: 15rem; }
|
|
98
|
+
@container prose (width < 640px) {
|
|
99
|
+
.ly-pair { grid-template-columns: minmax(0, 1fr); }
|
|
100
|
+
.ly-phone .ly-svg { margin-inline: auto; }
|
|
101
|
+
}
|
|
102
|
+
.ly-svg .f-plain { fill: var(--bh-color-surface); }
|
|
103
|
+
.ly-svg .f-page { fill: var(--bh-color-surface-page); }
|
|
104
|
+
.ly-svg .f-surface { fill: var(--bh-color-surface); stroke: var(--bh-color-border); stroke-width: 2; }
|
|
105
|
+
.ly-svg .f-subtle { fill: var(--bh-color-surface-subtle); }
|
|
106
|
+
.ly-svg .f-line { fill: var(--bh-color-border); }
|
|
107
|
+
.ly-svg .f-skel { fill: var(--bh-color-skeleton); }
|
|
108
|
+
.ly-svg .f-skel-subtle { fill: var(--bh-color-skeleton-subtle); }
|
|
109
|
+
.ly-svg .f-selected { fill: var(--bh-color-background-selected); }
|
|
110
|
+
.ly-svg .f-indicator { fill: var(--bh-color-border-selected); }
|
|
111
|
+
.ly-svg .f-primary { fill: var(--bh-color-background-neutral-bold); }
|
|
112
|
+
.ly-svg .f-field { fill: var(--bh-color-surface); stroke: var(--bh-color-border-bold); stroke-width: 2; }
|
|
113
|
+
.ly-svg .f-mark { fill: var(--sp-mark); }
|
|
114
|
+
.ly-svg .f-col { fill: var(--bh-color-background-danger-subtle); }
|
|
115
|
+
.ly-svg .f-block { fill: var(--bh-color-surface); fill-opacity: 0.6; stroke: var(--bh-color-border-bold); stroke-width: 2; stroke-dasharray: 8 6; }
|
|
116
|
+
.ly-svg .s-dim { stroke: var(--sp-mark-ink); stroke-width: 2; fill: none; }
|
|
117
|
+
.ly-svg .t-dim { fill: var(--sp-mark-ink); font-family: var(--bh-font-family-sans); font-weight: 600; }
|
|
118
|
+
.ly-svg .t-label { fill: var(--bh-color-text); font-family: var(--bh-font-family-sans); }
|
|
119
|
+
.ly-svg .f-inverse { fill: var(--bh-color-surface-inverse); }
|
|
120
|
+
.ly-svg .t-inverse { fill: var(--bh-color-text-inverse); font-family: var(--bh-font-family-sans); }
|
|
121
|
+
.ly-svg .t-ink { fill: var(--bh-color-text); font-family: var(--bh-font-family-sans); font-weight: 600; }
|
|
122
|
+
.ly-svg .c-call { fill: var(--bh-color-background-neutral-bold); }
|
|
123
|
+
.ly-svg .t-call { fill: var(--bh-color-text-inverse); font-family: var(--bh-font-family-sans); font-weight: 700; text-anchor: middle; dominant-baseline: central; }
|
|
124
|
+
.ly-svg .s-icon { stroke: var(--bh-color-icon); stroke-width: 2.5; fill: none; stroke-linecap: round; }
|
|
125
|
+
|
|
126
|
+
.ly-legend { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-100) var(--bh-space-300); margin: 0 0 var(--bh-space-300); padding: 0; list-style: none; counter-reset: ly; }
|
|
127
|
+
.prose .ly-legend li { display: grid; grid-template-columns: var(--bh-space-300) minmax(0, 1fr); gap: var(--bh-space-100); margin: 0; color: var(--c-muted); font: var(--bh-font-body-default); counter-increment: ly; }
|
|
128
|
+
.prose .ly-legend li::before { content: counter(ly); display: grid; place-items: center; width: var(--bh-space-300); height: var(--bh-space-300); border-radius: var(--bh-radius-full); color: var(--bh-color-text-inverse); background: var(--bh-color-background-neutral-bold); font: var(--bh-font-label-small); }
|
|
129
|
+
.ly-legend b { color: var(--c-ink); }
|
|
130
|
+
@container prose (min-width: 560px) { .ly-legend { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
|
|
131
|
+
|
|
132
|
+
/* Page widths: three windows of 1920 px, drawn at real size and scaled down. Strokes keep their screen width. */
|
|
133
|
+
.ly-widths { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
134
|
+
.ly-widths > figure { margin: 0; }
|
|
135
|
+
.ly-widths .ly-svg * { vector-effect: non-scaling-stroke; }
|
|
136
|
+
.ly-widths .ly-svg .f-surface, .ly-widths .ly-svg .f-field { stroke-width: 1; }
|
|
137
|
+
.ly-widths figcaption { display: grid; gap: var(--bh-space-025); margin-top: var(--bh-space-100); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
138
|
+
.ly-widths figcaption b { color: var(--c-ink); font: var(--bh-font-label-default); }
|
|
139
|
+
@container prose (min-width: 640px) { .ly-widths { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
|
|
140
|
+
|
|
141
|
+
/* Control heights */
|
|
142
|
+
.ly-controls { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
143
|
+
.ly-controls > figure { display: grid; grid-template-rows: auto 1fr; margin: 0; border: var(--bh-border-width-default) solid var(--c-line); border-radius: var(--bh-radius-150); overflow: hidden; }
|
|
144
|
+
.ly-controls-stage { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--bh-space-100); min-height: 6rem; padding: var(--bh-space-200); background: var(--c-surf); }
|
|
145
|
+
.ly-controls figcaption { display: grid; align-content: start; gap: var(--bh-space-050); padding: var(--bh-space-150) var(--bh-space-200); color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
146
|
+
.ly-controls figcaption b { color: var(--c-ink); font: var(--bh-font-label-default); }
|
|
147
|
+
.ly-ruler { position: relative; display: inline-flex; align-items: center; }
|
|
148
|
+
.ly-ruler::before { content: ''; position: absolute; top: 0; bottom: 0; left: calc(-1 * var(--bh-space-100)); border-left: 2px solid var(--sp-mark-ink); }
|
|
149
|
+
.ly-field { display: inline-flex; align-items: center; min-width: 0; width: 7.5rem; padding: 0 var(--bh-space-150); border: var(--bh-border-width-default) solid var(--bh-color-border-bold); border-radius: var(--bh-radius-100); color: var(--bh-color-text-subtle); background: var(--bh-color-surface); white-space: nowrap; font: var(--bh-font-body-default); }
|
|
150
|
+
.ly-field.is-small { height: var(--bh-size-control-small); padding: 0 var(--bh-space-100); font: var(--bh-font-body-small); }
|
|
151
|
+
.ly-field.is-default { height: var(--bh-size-control-default); }
|
|
152
|
+
.ly-field.is-large { height: var(--bh-size-control-large); }
|
|
153
|
+
@container prose (min-width: 640px) { .ly-controls { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
|
|
154
|
+
|
|
155
|
+
/* Breakpoints */
|
|
156
|
+
.ly-bp { display: flex; margin: 0 0 var(--bh-space-100); padding: 0; list-style: none; }
|
|
157
|
+
.prose .ly-bp li { position: relative; display: grid; align-content: start; gap: var(--bh-space-025); min-width: 0; margin: 0; padding: var(--bh-space-100) var(--bh-space-100) var(--bh-space-150); border-left: 2px solid var(--bh-color-border-bold); background: var(--c-surf); }
|
|
158
|
+
.prose .ly-bp li:nth-child(even) { background: var(--bh-color-background-neutral); }
|
|
159
|
+
.ly-bp b { color: var(--c-ink); font: var(--bh-font-label-default); }
|
|
160
|
+
.ly-bp span { color: var(--c-muted); font: var(--bh-font-body-small); font-variant-numeric: tabular-nums; }
|
|
161
|
+
.ly-bp-scale { margin: 0 0 var(--bh-space-300); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
162
|
+
@container prose (width < 560px) {
|
|
163
|
+
.ly-bp { flex-direction: column; }
|
|
164
|
+
.prose .ly-bp li { flex: none !important; grid-template-columns: 3rem minmax(0, 1fr); border-left: 0; border-top: 2px solid var(--bh-color-border-bold); }
|
|
165
|
+
}
|
|
@@ -0,0 +1,236 @@
|
|
|
1
|
+
/* Logos pages: stages, diagrams and examples. Colour roles come from chrome.css. */
|
|
2
|
+
|
|
3
|
+
/* A stage is a fixed-height panel that centres one logo on whole pixels.
|
|
4
|
+
--stage-h is the panel height; the logo sets --w and --h (LogoSvg.astro). */
|
|
5
|
+
.logo-stage { --stage-h: 200px; position: relative; display: flex; align-items: flex-start; height: var(--stage-h); overflow: hidden; }
|
|
6
|
+
.px-center {
|
|
7
|
+
display: block; flex: none;
|
|
8
|
+
margin-left: max(0px, calc((100% - var(--w)) / 2));
|
|
9
|
+
margin-left: max(0px, round(down, (100% - var(--w)) / 2, 1px));
|
|
10
|
+
margin-top: calc((var(--stage-h) - var(--h)) / 2);
|
|
11
|
+
margin-top: round(down, (var(--stage-h) - var(--h)) / 2, 1px);
|
|
12
|
+
}
|
|
13
|
+
.bg-white { background: #ffffff; }
|
|
14
|
+
/* A figure wider than its panel, centred and cropped by it: the grid runs edge to edge. */
|
|
15
|
+
.px-center.bleed { max-width: none; margin-left: calc((100% - var(--w)) / 2); margin-left: round(down, (100% - var(--w)) / 2, 1px); }
|
|
16
|
+
.bg-paper { background: #f8f8f8; }
|
|
17
|
+
.bg-graphite { background: #2b2a28; }
|
|
18
|
+
.bg-blue { background: #0077d5; }
|
|
19
|
+
.bg-yellow { background: #fcb017; }
|
|
20
|
+
|
|
21
|
+
/* Card grid shared by colour versions, misuse and examples. */
|
|
22
|
+
.logo-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
23
|
+
/* Column widths rounded down to whole pixels, so every card, and the logo centred in it, starts on a pixel edge. */
|
|
24
|
+
.logo-cards { grid-template-columns: round(down, (100% - 16px) / 2, 1px) minmax(0, 1fr); }
|
|
25
|
+
.logo-cards[style*='--cols:3'] { grid-template-columns: repeat(3, minmax(0, 1fr)); grid-template-columns: round(down, (100% - 32px) / 3, 1px) round(down, (100% - 32px) / 3, 1px) minmax(0, 1fr); }
|
|
26
|
+
.logo-card { overflow: hidden; border: 1px solid var(--c-line); border-radius: 12px; background: var(--c-bg); }
|
|
27
|
+
.logo-card > .logo-stage { border-bottom: 1px solid var(--c-line); }
|
|
28
|
+
.logo-card-body { padding: var(--bh-space-150) var(--bh-space-200) var(--bh-space-200); }
|
|
29
|
+
.prose .logo-card-body p { margin: 0; color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
30
|
+
.prose .logo-card-body .card-title { margin: 0 0 var(--bh-space-050); color: var(--c-ink); font: var(--bh-font-heading-small); }
|
|
31
|
+
.card-codes { display: flex; flex-wrap: wrap; gap: var(--bh-space-075); margin: var(--bh-space-100) 0 0; }
|
|
32
|
+
.card-codes span { display: inline-flex; align-items: center; gap: var(--bh-space-075); padding: var(--bh-space-025) var(--bh-space-100) var(--bh-space-025) var(--bh-space-050); border: 1px solid var(--c-line); border-radius: 999px; color: var(--c-ink); font: var(--bh-font-body-small); }
|
|
33
|
+
.prose .card-codes code { padding: 0; background: none; font-size: inherit; }
|
|
34
|
+
.card-codes i { width: 12px; height: 12px; border-radius: 50%; box-shadow: inset 0 0 0 1px rgb(0 0 0 / 15%); }
|
|
35
|
+
|
|
36
|
+
/* Do / Don't labels on misuse cards. */
|
|
37
|
+
.verdict { display: inline-flex; align-items: center; gap: var(--bh-space-075); margin-bottom: var(--bh-space-050); font: var(--bh-font-heading-xsmall); }
|
|
38
|
+
.verdict svg { flex: none; }
|
|
39
|
+
.verdict-do { color: var(--bh-color-text-success); }
|
|
40
|
+
.verdict-dont { color: var(--bh-color-text-danger); }
|
|
41
|
+
.logo-card.is-dont > .logo-stage { box-shadow: inset 0 -3px 0 var(--bh-color-border-danger); }
|
|
42
|
+
.logo-card.is-do > .logo-stage { box-shadow: inset 0 -3px 0 var(--bh-color-border-success); }
|
|
43
|
+
|
|
44
|
+
/* Diagrams drawn in SVG. They always sit on a white or paper stage, so their colours are fixed
|
|
45
|
+
and do not follow the page theme. */
|
|
46
|
+
.logo-figure { margin: 0 0 var(--bh-space-300); }
|
|
47
|
+
.logo-figure > .logo-stage { border: 1px solid var(--c-line); border-radius: 12px; }
|
|
48
|
+
.logo-figure figcaption { margin-top: var(--bh-space-100); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
49
|
+
.diagram { display: block; max-width: 100%; height: auto; }
|
|
50
|
+
.diagram .d-guide { fill: none; stroke: #2b2a28; opacity: .45; }
|
|
51
|
+
.diagram .d-zone { fill: #2b2a28; opacity: .045; }
|
|
52
|
+
.diagram .d-measure { fill: none; stroke: #2b2a28; }
|
|
53
|
+
.diagram .d-label { fill: #2b2a28; font-family: var(--bh-font-family-sans); font-weight: var(--bh-font-weight-medium); --bh-font-features: "cv05", "cv08", "tnum"; paint-order: stroke; stroke: #ffffff; stroke-linejoin: round; }
|
|
54
|
+
.diagram .d-note { fill: #5f5e5c; font-family: var(--bh-font-family-sans); font-weight: var(--bh-font-weight-medium); }
|
|
55
|
+
.diagram .d-grid { fill: none; stroke: #2b2a28; opacity: .13; }
|
|
56
|
+
.diagram .d-ink { fill: #2b2a28; }
|
|
57
|
+
.anatomy-stage { --stage-h: 288px; }
|
|
58
|
+
|
|
59
|
+
/* Legend under a diagram. */
|
|
60
|
+
.prose .diagram-legend { display: grid; grid-template-columns: repeat(var(--cols, 3), minmax(0, 1fr)); gap: var(--bh-space-150) var(--bh-space-300); margin: 0 0 var(--bh-space-300); padding: 0; list-style: none; }
|
|
61
|
+
.prose .diagram-legend li { margin: 0; padding-left: var(--bh-space-150); border-left: 2px solid var(--c-gold); color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
62
|
+
.prose .diagram-legend b { display: block; color: var(--c-ink); }
|
|
63
|
+
|
|
64
|
+
/* Download hero. round() keeps the dark panel on a whole pixel when the column width is odd. */
|
|
65
|
+
.logo-hero { margin: 0 0 var(--bh-space-200); }
|
|
66
|
+
.logo-hero-panels { display: grid; grid-template-columns: 1fr 1fr; grid-template-columns: round(down, 50%, 1px) 1fr; overflow: hidden; border: 1px solid var(--c-line); border-radius: 12px; }
|
|
67
|
+
.hero-sm { display: none !important; }
|
|
68
|
+
.logo-hero-bar { display: flex; align-items: center; justify-content: space-between; gap: var(--bh-space-200); margin-top: var(--bh-space-150); color: var(--c-muted); font: var(--bh-font-body-small); }
|
|
69
|
+
|
|
70
|
+
@container prose (width < 640px) {
|
|
71
|
+
.logo-cards, .logo-cards[style*='--cols:3'] { grid-template-columns: round(down, (100% - 16px) / 2, 1px) minmax(0, 1fr); }
|
|
72
|
+
.prose .diagram-legend { grid-template-columns: minmax(0, 1fr); }
|
|
73
|
+
}
|
|
74
|
+
@container prose (width < 560px) {
|
|
75
|
+
.logo-cards, .logo-cards[style*='--cols:3'] { grid-template-columns: minmax(0, 1fr); }
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
@container prose (width < 640px) {
|
|
79
|
+
.logo-hero-panels { grid-template-columns: minmax(0, 1fr); }
|
|
80
|
+
.hero-stage { --stage-h: 120px; }
|
|
81
|
+
.hero-lg { display: none !important; }
|
|
82
|
+
.hero-sm { display: block !important; }
|
|
83
|
+
.logo-hero-bar { flex-direction: column; align-items: stretch; }
|
|
84
|
+
}
|
|
85
|
+
.construction-stage { --stage-h: 420px; }
|
|
86
|
+
|
|
87
|
+
/* One icon, three meanings. */
|
|
88
|
+
.prose .logo-meanings { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); padding: 0; list-style: none; }
|
|
89
|
+
.prose .logo-meanings li { overflow: hidden; margin: 0; border: 1px solid var(--c-line); border-radius: 12px; }
|
|
90
|
+
.meaning-stage { --stage-h: 164px; border-bottom: 1px solid var(--c-line); }
|
|
91
|
+
.meaning-text { padding: var(--bh-space-150) var(--bh-space-200) var(--bh-space-200); }
|
|
92
|
+
.prose .meaning-text p { margin: 0; color: var(--c-muted); font: var(--bh-font-body-default); }
|
|
93
|
+
.prose .meaning-text .meaning-title { display: flex; align-items: center; gap: var(--bh-space-100); margin-bottom: var(--bh-space-075); color: var(--c-ink); font: var(--bh-font-heading-small); }
|
|
94
|
+
.meaning-n { display: inline-grid; flex: none; place-items: center; width: 22px; height: 22px; border-radius: 50%; color: var(--bh-color-text); background: var(--bh-color-background-brand-subtle); font: var(--bh-font-label-small); }
|
|
95
|
+
.meaning-word { color: var(--c-muted); }
|
|
96
|
+
@container prose (min-width: 760px) { .prose .logo-meanings { grid-template-columns: repeat(3, minmax(0, 1fr)); } }
|
|
97
|
+
.version-stage { --stage-h: 168px; }
|
|
98
|
+
.clear-stage { --stage-h: 272px; }
|
|
99
|
+
.minsize-stage { --stage-h: 120px; }
|
|
100
|
+
.minsize-item { display: flex; flex-direction: column; align-items: center; gap: var(--bh-space-100); width: var(--w); height: var(--h); }
|
|
101
|
+
.minsize-item svg { display: block; }
|
|
102
|
+
.minsize-rule { align-self: stretch; padding-bottom: var(--bh-space-025); border: 1px solid #8e8c89; border-top: 0; color: #5f5e5c; --bh-font-features: "cv05", "cv08", "tnum"; text-align: center; font: var(--bh-font-label-small); }
|
|
103
|
+
.minsize-caption { color: #5f5e5c; --bh-font-features: "cv05", "cv08", "tnum"; white-space: nowrap; font: var(--bh-font-label-small); }
|
|
104
|
+
.misuse-stage { --stage-h: 120px; }
|
|
105
|
+
.container-stage { --stage-h: 360px; }
|
|
106
|
+
.app-icons { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
107
|
+
.app-icons figure { display: flex; flex-direction: column; align-items: center; gap: var(--bh-space-100); margin: 0; padding: var(--bh-space-250) var(--bh-space-150) var(--bh-space-200); border: 1px solid var(--c-line); border-radius: 12px; }
|
|
108
|
+
.app-icon { display: block; width: 96px; height: 96px; }
|
|
109
|
+
.shape-rounded { border-radius: 22px; }
|
|
110
|
+
.shape-circle { border-radius: 50%; }
|
|
111
|
+
.app-icons figcaption { color: var(--c-muted); text-align: center; font: var(--bh-font-body-small); }
|
|
112
|
+
.app-icons figcaption b { display: block; color: var(--c-ink); }
|
|
113
|
+
@container prose (min-width: 640px) { .app-icons { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
|
|
114
|
+
|
|
115
|
+
/* In-use mock-ups. Fixed colours: they show real surfaces, not the page theme. Text inside a
|
|
116
|
+
mock-up is drawn to the scale of the mock (a business card, a browser tab), so it does not use
|
|
117
|
+
the text styles. */
|
|
118
|
+
.mock { position: relative; height: 200px; overflow: hidden; border-bottom: 1px solid var(--c-line); background: #f8f8f8; }
|
|
119
|
+
.mock svg { display: block; }
|
|
120
|
+
.mock i, .mock b { display: block; height: 8px; border-radius: 4px; background: #dfdedd; }
|
|
121
|
+
.mock b { background: #c4c4c2; }
|
|
122
|
+
.mock-site, .mock-app { background: #ffffff; }
|
|
123
|
+
.mock-bar { display: flex; align-items: center; justify-content: space-between; height: 56px; padding: 0 var(--bh-space-250); border-bottom: 1px solid #e8e8e7; background: #ffffff; }
|
|
124
|
+
.mock-bar-dark { height: 48px; border-color: #2b2a28; background: #2b2a28; }
|
|
125
|
+
.mock-links { display: flex; align-items: center; gap: var(--bh-space-150); }
|
|
126
|
+
.mock-links i { width: 40px; }
|
|
127
|
+
.mock-links b { width: 64px; height: 24px; border-radius: 6px; background: #2b2a28; }
|
|
128
|
+
.mock-bar-dark .mock-links i { background: #51504e; }
|
|
129
|
+
.mock-bar-dark .mock-links b.dot { width: 24px; height: 24px; border-radius: 50%; background: #fcb017; }
|
|
130
|
+
.mock-hero { display: grid; gap: var(--bh-space-150); padding: var(--bh-space-400) var(--bh-space-250); }
|
|
131
|
+
.mock-hero i { height: 14px; }
|
|
132
|
+
.mock-hero b { width: 96px; height: 28px; margin-top: var(--bh-space-075); border-radius: 6px; background: #2b2a28; }
|
|
133
|
+
.mock-body { display: grid; grid-template-columns: 120px 1fr; height: calc(100% - 48px); }
|
|
134
|
+
.mock-nav { display: grid; align-content: start; gap: var(--bh-space-150); padding: var(--bh-space-200); border-right: 1px solid #e8e8e7; background: #f8f8f8; }
|
|
135
|
+
.mock-cards { display: grid; grid-template-columns: 1fr 1fr; gap: var(--bh-space-150); padding: var(--bh-space-200); }
|
|
136
|
+
.mock-cards i { height: 44px; border-radius: 8px; background: #f2f2f1; }
|
|
137
|
+
.mock-browser { padding-top: var(--bh-space-200); background: #dee1e6; }
|
|
138
|
+
.mock-tabs { display: flex; gap: var(--bh-space-025); padding: 0 var(--bh-space-150); }
|
|
139
|
+
.mock-tab { display: flex; align-items: center; gap: var(--bh-space-100); width: 200px; height: 36px; padding: 0 var(--bh-space-150); border-radius: 10px 10px 0 0; color: #3c4043; font: var(--bh-font-body-small); }
|
|
140
|
+
.mock-tab.is-active { background: #ffffff; }
|
|
141
|
+
.mock-tab img { display: block; flex: none; }
|
|
142
|
+
.mock-tab i { width: 16px; height: 16px; border-radius: 4px; }
|
|
143
|
+
.mock-tab .ghost { width: 90px; height: 8px; border-radius: 4px; background: #c4c7cc; }
|
|
144
|
+
.mock-url { height: 100%; padding: var(--bh-space-100) var(--bh-space-200); background: #ffffff; }
|
|
145
|
+
.mock-url i { width: 70%; height: 28px; border-radius: 14px; background: #f1f3f4; }
|
|
146
|
+
.mock-social { display: flex; align-items: center; gap: var(--bh-space-200); padding: 0 var(--bh-space-300); background: #ffffff; }
|
|
147
|
+
.mock-avatar { display: block; flex: none; border-radius: 50%; }
|
|
148
|
+
.mock-lines { display: grid; flex: 1; gap: var(--bh-space-100); }
|
|
149
|
+
.mock-lines b { width: 50%; height: 12px; }
|
|
150
|
+
.mock-doc { display: flex; justify-content: center; padding-top: var(--bh-space-250); background: #e8e8e7; }
|
|
151
|
+
.mock-page { display: grid; align-content: start; gap: var(--bh-space-200); width: 200px; height: 260px; padding: var(--bh-space-200); background: #ffffff; box-shadow: 0 2px 8px rgb(0 0 0 / 10%); }
|
|
152
|
+
.mock-page .mock-lines { gap: var(--bh-space-100); margin-top: var(--bh-space-075); }
|
|
153
|
+
.mock-page .mock-lines i { height: 5px; }
|
|
154
|
+
.mock-page .mock-lines b { height: 8px; }
|
|
155
|
+
.mock-partner { display: flex; align-items: center; justify-content: center; gap: var(--bh-space-300); background: #ffffff; }
|
|
156
|
+
.mock-divider { width: 1px; height: 32px; background: #c4c4c2; }
|
|
157
|
+
.mock-partner-logo { display: grid; place-items: center; width: 120px; height: 32px; border: 1px dashed #c4c4c2; border-radius: 6px; color: #8e8c89; font: var(--bh-font-label-small); font-weight: var(--bh-font-weight-semibold); }
|
|
158
|
+
.pair { margin: 0 0 var(--bh-space-300); }
|
|
159
|
+
/* One example on its own: mock-up and text side by side, full width. */
|
|
160
|
+
.logo-cards.inuse.single { grid-template-columns: minmax(0, 1fr); }
|
|
161
|
+
.inuse.single .logo-card { display: grid; grid-template-columns: minmax(0, 1fr); }
|
|
162
|
+
.inuse.single .mock { border-right: 0; border-bottom: 1px solid var(--c-line); }
|
|
163
|
+
.inuse.single .logo-card-body { align-self: center; padding: var(--bh-space-250) var(--bh-space-300); }
|
|
164
|
+
@container prose (min-width: 560px) { .inuse.single .logo-card { grid-template-columns: round(down, 50%, 1px) minmax(0, 1fr); } .inuse.single .mock { border-right: 1px solid var(--c-line); border-bottom: 0; } }
|
|
165
|
+
@container prose (min-width: 560px) { .prose td code { white-space: nowrap; } } /* file names stay on one line where there is room */
|
|
166
|
+
/* Small screens: a diagram wider than the column scales down, so the stage grows to fit it. */
|
|
167
|
+
@container prose (width < 640px) {
|
|
168
|
+
.logo-stage:not(.meaning-stage):not(.bleed-stage):has(> .diagram) { height: auto; padding: var(--bh-space-200) var(--bh-space-150); }
|
|
169
|
+
.logo-stage:not(.meaning-stage):not(.bleed-stage) > .diagram.px-center { margin: 0 auto; }
|
|
170
|
+
.bleed-stage { height: auto; }
|
|
171
|
+
.bleed-stage > .diagram.bleed { width: 170%; max-width: none; height: auto; margin: 0 0 0 -35%; }
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
.fig { display: block; max-width: none; }
|
|
175
|
+
|
|
176
|
+
/* More in-use mock-ups. */
|
|
177
|
+
.mock-desk { display: flex; align-items: center; justify-content: center; gap: var(--bh-space-150); background: #e8e8e7; }
|
|
178
|
+
.mock-slide { display: grid; align-content: space-between; width: 264px; height: 148px; padding: var(--bh-space-150) var(--bh-space-200) var(--bh-space-200); background: #2b2a28; box-shadow: 0 2px 8px rgb(0 0 0 / 14%); }
|
|
179
|
+
.mock-slide .mock-lines b { width: 70%; height: 12px; background: #f8f8f8; }
|
|
180
|
+
.mock-slide .mock-lines i { height: 6px; background: #646361; }
|
|
181
|
+
.mock-email { display: grid; align-content: center; gap: var(--bh-space-150); padding: 0 var(--bh-space-300); background: #ffffff; }
|
|
182
|
+
.mock-email .mock-lines { gap: var(--bh-space-100); }
|
|
183
|
+
.mock-email .mock-lines b { height: 10px; }
|
|
184
|
+
.mock-rule { display: block; width: 64px; height: 1px; background: #dfdedd; }
|
|
185
|
+
.mock-cards-pair { gap: 0; }
|
|
186
|
+
.mock-bizcard { position: relative; display: grid; place-items: center; width: 170px; height: 110px; border-radius: 4px; box-shadow: 0 1px 2px rgb(0 0 0 / 12%), 0 8px 20px rgb(0 0 0 / 12%); }
|
|
187
|
+
.mock-bizcard.is-front { z-index: 1; margin-left: -40px; background: #2b2a28; transform: translateY(18px); }
|
|
188
|
+
.mock-bizcard.is-back { align-content: space-between; justify-items: start; padding: var(--bh-space-150); background: #ffffff; transform: translateY(-14px); }
|
|
189
|
+
.bizcard-text { display: grid; gap: 1px; color: #5f5e5c; font-size: 7px; line-height: 10px; letter-spacing: .01em; }
|
|
190
|
+
.bizcard-text strong { color: #2b2a28; font-size: 9px; font-weight: var(--bh-font-weight-semibold); line-height: 12px; }
|
|
191
|
+
.bizcard-contact { color: #8e8c89; }
|
|
192
|
+
.mock-photo { background: linear-gradient(180deg, #46566b 0%, #8d7a6a 58%, #c99a6b 100%); }
|
|
193
|
+
.mock-photo-hill { position: absolute; inset: auto -10% -38% -10%; height: 70%; border-radius: 50% 50% 0 0; background: linear-gradient(180deg, #2f3a33, #222a25); }
|
|
194
|
+
.mock-photo-logo { position: absolute; top: 24px; left: 24px; }
|
|
195
|
+
.mock-yellow { display: grid; align-content: center; justify-items: center; gap: var(--bh-space-200); background: #fcb017; }
|
|
196
|
+
.mock-yellow .mock-lines { justify-items: center; width: 60%; gap: var(--bh-space-100); }
|
|
197
|
+
.mock-yellow .mock-lines b { width: 80%; height: 10px; background: rgb(43 42 40 / 22%); }
|
|
198
|
+
.mock-login { display: grid; place-items: center; background: #f8f8f8; }
|
|
199
|
+
.mock-login-panel { display: grid; justify-items: center; gap: var(--bh-space-100); width: 200px; padding: var(--bh-space-250); border-radius: 10px; background: #ffffff; box-shadow: 0 1px 3px rgb(0 0 0 / 10%); }
|
|
200
|
+
.mock-login-panel > svg, .mock-login-panel > img { margin-bottom: var(--bh-space-075); }
|
|
201
|
+
.mock-input { display: block; width: 100%; height: 24px; border: 1px solid #dfdedd; border-radius: 6px; }
|
|
202
|
+
.mock-button { display: block; width: 100%; height: 26px; border-radius: 6px; background: #2b2a28; }
|
|
203
|
+
.mock-market { display: grid; align-content: center; gap: var(--bh-space-100); padding: 0 var(--bh-space-300); background: #f8f8f8; }
|
|
204
|
+
.mock-listing { display: flex; align-items: center; gap: var(--bh-space-150); padding: calc(var(--bh-space-100) - 1px) calc(var(--bh-space-150) - 1px); border: 1px solid #e8e8e7; border-radius: 10px; background: #ffffff; }
|
|
205
|
+
.mock-listing img { display: block; flex: none; border-radius: 9px; }
|
|
206
|
+
/* Mock-ups below are drawn at reduced scale, so their text sizes are fixed px, not text styles. */
|
|
207
|
+
.mock-listing span:not(.mock-lines) { display: grid; color: #2b2a28; font-size: 13px; line-height: 16px; }
|
|
208
|
+
.mock-listing small { color: #8e8c89; font-size: 11px; }
|
|
209
|
+
.mock-listing:not(.is-ours) { padding-block: var(--bh-space-075); }
|
|
210
|
+
.mock .mock-tile { flex: none; width: 28px; height: 28px; border-radius: 7px; background: #e8e8e7; }
|
|
211
|
+
.mock-listing .mock-lines { gap: var(--bh-space-075); }
|
|
212
|
+
.mock-listing .mock-lines b { width: 40%; }
|
|
213
|
+
|
|
214
|
+
/* Common mistakes, shown as they look. */
|
|
215
|
+
.mistake-stage { --stage-h: 168px; }
|
|
216
|
+
.mistake-pixels { align-items: center; justify-content: center; gap: var(--bh-space-300); }
|
|
217
|
+
.mistake-pixels figure { display: grid; justify-items: center; gap: var(--bh-space-100); margin: 0; }
|
|
218
|
+
.mistake-pixels svg { display: block; }
|
|
219
|
+
.mistake-pixels figcaption { color: #5f5e5c; font: var(--bh-font-body-small); }
|
|
220
|
+
.mistake-offset { display: block; }
|
|
221
|
+
.mistake-axis { position: absolute; background: repeating-linear-gradient(90deg, #8e8c89 0 3px, transparent 3px 6px); }
|
|
222
|
+
.mistake-axis.is-v { top: 0; bottom: 0; left: 50%; width: 1px; background: repeating-linear-gradient(180deg, #8e8c89 0 3px, transparent 3px 6px); }
|
|
223
|
+
.mistake-axis.is-h { top: 50%; right: 0; left: 0; height: 1px; }
|
|
224
|
+
.mistake-offset-logo { position: absolute; top: calc(50% - 22px); left: calc(50% - 98px); }
|
|
225
|
+
.mistake-browser { display: flex; flex-direction: column; align-items: stretch; background: #202124; }
|
|
226
|
+
.mistake-tabs { display: flex; align-items: flex-end; gap: var(--bh-space-050); padding: var(--bh-space-250) var(--bh-space-200) 0; }
|
|
227
|
+
.mistake-tab { display: flex; flex: none; align-items: center; gap: var(--bh-space-150); width: 210px; height: 52px; padding: 0 var(--bh-space-200); border-radius: 14px 14px 0 0; background: #35363a; }
|
|
228
|
+
.mistake-tab.is-idle { width: 120px; background: transparent; }
|
|
229
|
+
.mistake-tab i { display: block; width: 110px; height: 10px; border-radius: 5px; background: #6f7378; }
|
|
230
|
+
.mistake-tab.is-idle i { width: 80px; background: #4a4d51; }
|
|
231
|
+
.mistake-favicon { display: grid; flex: none; place-items: center; width: 32px; height: 32px; background: #ffffff; }
|
|
232
|
+
.mistake-toolbar { display: flex; align-items: center; height: 64px; padding: 0 var(--bh-space-200); background: #35363a; }
|
|
233
|
+
.mistake-toolbar i { display: block; width: 100%; height: 36px; border-radius: 18px; background: #202124; }
|
|
234
|
+
.mistake-crop { display: grid; place-items: center; }
|
|
235
|
+
.mistake-circle { display: grid; place-items: center; overflow: hidden; width: 96px; height: 96px; border-radius: 50%; background: #2b2a28; }
|
|
236
|
+
.prose .mistakes .logo-card-body b { color: var(--c-ink); }
|
|
@@ -0,0 +1,139 @@
|
|
|
1
|
+
/* Radius and Border pages. Every corner and line uses its token, so the figures show the real values.
|
|
2
|
+
Layout helpers (.sp-dd, .sp-btn, .sp-input, .sp-chip) come from layout.css. */
|
|
3
|
+
.sh-root { --sh-mark: var(--bh-color-background-info-subtle); --sh-mark-edge: var(--bh-color-border-info-subtle); --sh-mark-ink: var(--bh-color-text-info); }
|
|
4
|
+
.prose .sh-scale { padding: 0; }
|
|
5
|
+
.sh-scale { display: grid; margin: 0 0 var(--bh-space-300); padding: 0; border-top: var(--bh-border-width-default) solid var(--bh-color-border); list-style: none; }
|
|
6
|
+
.prose .sh-scale li { display: grid; grid-template-columns: 8.5rem 4rem 4.5rem minmax(0, 1fr); align-items: center; gap: var(--bh-space-200); margin: 0; padding: var(--bh-space-150) 0; border-bottom: var(--bh-border-width-default) solid var(--bh-color-border); }
|
|
7
|
+
.sh-name { display: grid; gap: var(--bh-space-025); min-width: 0; }
|
|
8
|
+
.sh-name small { overflow-wrap: anywhere; color: var(--bh-color-text-subtle); font: var(--bh-font-code-default); font-size: var(--bh-font-size-100); }
|
|
9
|
+
.sh-px { font: var(--bh-font-label-default); font-variant-numeric: tabular-nums; }
|
|
10
|
+
.sh-use { color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
11
|
+
.sh-swatch { display: block; width: var(--bh-space-600); height: var(--bh-space-600); border: var(--bh-border-width-focused) solid var(--bh-color-text); background: var(--bh-color-background-neutral); }
|
|
12
|
+
.sh-line { display: block; width: var(--bh-space-800); height: var(--bh-space-500); border-color: var(--bh-color-text); border-style: solid; border-radius: var(--bh-radius-100); background: var(--bh-color-surface); }
|
|
13
|
+
.sh-accent-prev { border-width: var(--bh-border-width-default); border-color: var(--bh-color-border); background: linear-gradient(to right, var(--bh-color-border-danger) var(--bh-border-width-accent), var(--bh-color-surface) 0) padding-box; }
|
|
14
|
+
@container prose (max-width: 560px) { .prose .sh-scale li { grid-template-columns: 4.5rem minmax(0, 1fr); } .sh-scale .sh-px { grid-column: 2; grid-row: 1; justify-self: end; } .sh-scale .sh-name { grid-column: 2; grid-row: 1; } .sh-scale .sh-prev { grid-row: 1 / span 2; } .sh-scale .sh-use { grid-column: 2; } }
|
|
15
|
+
|
|
16
|
+
/* A figure: stage with live examples, then a caption that names what uses the value. */
|
|
17
|
+
.sh-fig { margin: 0 0 var(--bh-space-300); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-150); overflow: hidden; }
|
|
18
|
+
.sh-stage { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: var(--bh-space-300); min-height: calc(2 * var(--bh-space-800)); padding: var(--bh-space-300); background: var(--bh-color-surface-subtle); }
|
|
19
|
+
.sh-fig figcaption { display: grid; gap: var(--bh-space-050); padding: var(--bh-space-150) var(--bh-space-200); color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
20
|
+
.sh-fig figcaption b { color: var(--bh-color-text); font: var(--bh-font-label-default); }
|
|
21
|
+
.sh-col { display: grid; gap: var(--bh-space-100); justify-items: start; }
|
|
22
|
+
.sh-row { display: flex; flex-wrap: wrap; align-items: center; gap: var(--bh-space-100); }
|
|
23
|
+
.sh-label { color: var(--bh-color-text-subtle); font: var(--bh-font-label-small); }
|
|
24
|
+
|
|
25
|
+
/* Small UI parts drawn with tokens. */
|
|
26
|
+
.sh-check { display: inline-grid; place-items: center; width: var(--bh-space-200); height: var(--bh-space-200); border-radius: var(--bh-radius-050); color: var(--bh-color-text-inverse); background: var(--bh-color-background-neutral-bold); }
|
|
27
|
+
.sh-check svg { width: var(--bh-space-150); height: var(--bh-space-150); }
|
|
28
|
+
.sh-tag { display: inline-flex; align-items: center; height: var(--bh-size-control-small); padding: 0 var(--bh-space-100); border-radius: var(--bh-radius-050); color: var(--bh-color-text); background: var(--bh-color-background-neutral); font: var(--bh-font-label-small); }
|
|
29
|
+
.sh-tag.is-pill { border-radius: var(--bh-radius-full); color: var(--bh-color-text-success); background: var(--bh-color-background-success-subtle); }
|
|
30
|
+
.sh-badge { display: inline-grid; place-items: center; min-width: var(--bh-space-250); height: var(--bh-space-250); padding: 0 var(--bh-space-050); border-radius: var(--bh-radius-050); color: var(--bh-color-text-on-bold); background: var(--bh-color-background-danger-bold); font: var(--bh-font-label-small); }
|
|
31
|
+
.sh-menu { display: grid; width: 12rem; padding: var(--bh-space-050); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-100); background: var(--bh-color-surface); box-shadow: var(--bh-elevation-shadow-overlay); }
|
|
32
|
+
.sh-menu > span:not(.sh-pin), .sh-menu > .sh-pin > span:first-child { padding: var(--bh-space-075) var(--bh-space-100); border-radius: var(--bh-radius-050); color: var(--bh-color-text); font: var(--bh-font-body-default); }
|
|
33
|
+
.sh-menu > span:not(.sh-pin).is-on, .sh-menu > .sh-pin > span:first-child.is-on { background: var(--bh-color-background-neutral-subtle-hover); }
|
|
34
|
+
.sh-menu > span:not(.sh-pin).is-focus, .sh-menu > .sh-pin > span:first-child.is-focus { outline: var(--bh-border-width-focused) solid var(--bh-color-border-focus); outline-offset: calc(-1 * var(--bh-state-focus-offset)); }
|
|
35
|
+
.sh-tip { position: relative; padding: var(--bh-space-050) var(--bh-space-100); border-radius: var(--bh-radius-100); color: var(--bh-color-text-inverse); background: var(--bh-color-surface-inverse); font: var(--bh-font-body-small); }
|
|
36
|
+
.sh-card { display: grid; gap: var(--bh-space-050); width: 15rem; padding: var(--bh-space-300); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-150); background: var(--bh-color-surface); }
|
|
37
|
+
.sh-card b { color: var(--bh-color-text); font: var(--bh-font-heading-small); }
|
|
38
|
+
.sh-card span { color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
39
|
+
.sh-card.is-selected { border: var(--bh-border-width-selected) solid var(--bh-color-border-selected); padding: calc(var(--bh-space-300) - var(--bh-border-width-selected) + var(--bh-border-width-default)); }
|
|
40
|
+
.sh-dialog { display: grid; gap: var(--bh-space-200); width: 18rem; padding: var(--bh-space-300); border-radius: var(--bh-radius-200); background: var(--bh-color-surface); box-shadow: var(--bh-elevation-shadow-overlay); }
|
|
41
|
+
.sh-dialog b { font: var(--bh-font-heading-small); }
|
|
42
|
+
.sh-dialog p { margin: 0; color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
43
|
+
.sh-dialog .sh-row { justify-content: flex-end; }
|
|
44
|
+
.sh-group { display: inline-flex; white-space: nowrap; gap: var(--bh-space-050); padding: var(--bh-space-050); border-radius: var(--bh-radius-150); background: var(--bh-color-background-neutral); }
|
|
45
|
+
.sh-group > span:not(.sh-pin), .sh-group > .sh-pin > span:first-child { display: inline-flex; align-items: center; height: var(--bh-size-control-small); padding: 0 var(--bh-space-150); border-radius: var(--bh-radius-100); color: var(--bh-color-text-subtle); font: var(--bh-font-label-default); }
|
|
46
|
+
.sh-group > span:not(.sh-pin).is-on, .sh-group > .sh-pin > span:first-child.is-on { color: var(--bh-color-text); background: var(--bh-color-surface); box-shadow: 0 0 0 var(--bh-border-width-default) var(--bh-color-border); }
|
|
47
|
+
.sh-avatar { display: inline-grid; place-items: center; width: var(--bh-space-600); height: var(--bh-space-600); border-radius: var(--bh-radius-full); color: var(--bh-color-text); background: var(--bh-color-background-neutral); font: var(--bh-font-label-default); }
|
|
48
|
+
.sh-switch { position: relative; width: var(--bh-space-500); height: var(--bh-size-control-small); border-radius: var(--bh-radius-full); background: var(--bh-color-background-neutral-bold); }
|
|
49
|
+
.sh-switch::after { content: ""; position: absolute; top: var(--bh-space-025); right: var(--bh-space-025); width: calc(var(--bh-size-control-small) - 2 * var(--bh-space-025)); height: calc(var(--bh-size-control-small) - 2 * var(--bh-space-025)); border-radius: var(--bh-radius-full); background: var(--bh-color-surface); }
|
|
50
|
+
.sh-frame { display: grid; width: min(100%, 26rem); border: var(--bh-border-width-default) solid var(--bh-color-border); background: var(--bh-color-surface); }
|
|
51
|
+
.sh-frame header { padding: var(--bh-space-100) var(--bh-space-200); border-bottom: var(--bh-border-width-default) solid var(--bh-color-border); font: var(--bh-font-label-default); }
|
|
52
|
+
.sh-table { display: grid; }
|
|
53
|
+
.sh-table > span:not(.sh-pin), .sh-table > .sh-pin > span:first-child { display: grid; grid-template-columns: 5rem minmax(0, 1fr) auto; gap: var(--bh-space-150); padding: var(--bh-space-100) var(--bh-space-200); border-bottom: var(--bh-border-width-default) solid var(--bh-color-border); color: var(--bh-color-text); font: var(--bh-font-body-default); font-variant-numeric: tabular-nums; }
|
|
54
|
+
.sh-table > span:not(.sh-pin):last-child, .sh-table > .sh-pin > span:first-child:last-child { border-bottom: 0; }
|
|
55
|
+
.sh-table > span:not(.sh-pin).is-error, .sh-table > .sh-pin > span:first-child.is-error { box-shadow: inset var(--bh-border-width-accent) 0 0 var(--bh-color-border-danger); }
|
|
56
|
+
.sh-table em { font-style: normal; color: var(--bh-color-text-subtle); }
|
|
57
|
+
|
|
58
|
+
/* Alerts and quotes: the accent bar is a strip clipped by the box, so it follows the corner. */
|
|
59
|
+
.sh-alert { position: relative; display: grid; gap: var(--bh-space-025); width: min(100%, 24rem); padding: var(--bh-space-150) var(--bh-space-200) var(--bh-space-150) calc(var(--bh-space-200) + var(--bh-border-width-accent)); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-100); background: var(--bh-color-surface); overflow: hidden; --sh-bar: var(--bh-color-border-danger); }
|
|
60
|
+
.sh-alert::before { content: ""; position: absolute; inset: 0 auto 0 0; width: var(--bh-border-width-accent); background: var(--sh-bar); }
|
|
61
|
+
.sh-alert.is-warning { --sh-bar: var(--bh-color-border-warning); }
|
|
62
|
+
.sh-alert.is-info { --sh-bar: var(--bh-color-border-info); }
|
|
63
|
+
.sh-alert b { color: var(--bh-color-text); font: var(--bh-font-label-default); }
|
|
64
|
+
.sh-alert span { color: var(--bh-color-text-subtle); font: var(--bh-font-body-default); }
|
|
65
|
+
.sh-alert.is-squared { border-radius: 0 var(--bh-radius-100) var(--bh-radius-100) 0; }
|
|
66
|
+
.sh-alert.is-boxed { border: var(--bh-border-width-accent) solid var(--bh-color-border-danger); padding-left: var(--bh-space-200); }
|
|
67
|
+
.sh-alert.is-boxed::before { display: none; }
|
|
68
|
+
.prose .sh-quote, .sh-quote { margin: 0; max-width: 20rem; padding: var(--bh-space-050) 0 var(--bh-space-050) var(--bh-space-200); border-left: var(--bh-border-width-accent) solid var(--bh-color-border-brand); color: var(--bh-color-text); font: var(--bh-font-body-large); }
|
|
69
|
+
|
|
70
|
+
/* Selected and focus. */
|
|
71
|
+
.sh-tabs { display: flex; gap: var(--bh-space-300); border-bottom: var(--bh-border-width-default) solid var(--bh-color-border); }
|
|
72
|
+
.sh-tabs > span:not(.sh-pin), .sh-tabs > .sh-pin > span:first-child { padding: var(--bh-space-100) 0; color: var(--bh-color-text-subtle); font: var(--bh-font-label-default); }
|
|
73
|
+
.sh-tabs > span:not(.sh-pin).is-on, .sh-tabs > .sh-pin > span:first-child.is-on { color: var(--bh-color-text); box-shadow: inset 0 calc(-1 * var(--sh-sel, var(--bh-border-width-selected))) 0 var(--bh-color-border-selected); }
|
|
74
|
+
.sh-nav { display: grid; gap: var(--bh-space-025); width: 12rem; }
|
|
75
|
+
.sh-nav > span:not(.sh-pin), .sh-nav > .sh-pin > span:first-child { padding: var(--bh-space-075) var(--bh-space-150); border-radius: 0 var(--bh-radius-050) var(--bh-radius-050) 0; color: var(--bh-color-text-subtle); font: var(--bh-font-label-default); }
|
|
76
|
+
.sh-nav > span:not(.sh-pin).is-on, .sh-nav > .sh-pin > span:first-child.is-on { color: var(--bh-color-text); background: var(--bh-color-background-selected); box-shadow: inset var(--bh-border-width-selected) 0 0 var(--bh-color-border-selected); }
|
|
77
|
+
.sh-ring { outline: var(--bh-border-width-focused) solid var(--bh-color-border-focus); outline-offset: var(--bh-state-focus-offset); }
|
|
78
|
+
|
|
79
|
+
/* Nesting figures. */
|
|
80
|
+
.sh-nest-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(13rem, 1fr)); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
81
|
+
.sh-nest { display: grid; gap: var(--bh-space-150); margin: 0; padding: var(--bh-space-200); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-150); }
|
|
82
|
+
.sh-outer { display: grid; background: var(--sh-mark); box-shadow: inset 0 0 0 var(--bh-border-width-default) var(--sh-mark-edge); }
|
|
83
|
+
.sh-inner { display: grid; place-items: center; min-height: var(--bh-space-600); color: var(--bh-color-text); background: var(--bh-color-surface); box-shadow: 0 0 0 var(--bh-border-width-default) var(--bh-color-border-bold); font: var(--bh-font-label-small); }
|
|
84
|
+
.sh-sum { font: var(--bh-font-code-default); color: var(--bh-color-text); }
|
|
85
|
+
.sh-nest figcaption { color: var(--bh-color-text-subtle); font: var(--bh-font-body-small); }
|
|
86
|
+
|
|
87
|
+
/* Radius examples, one card per example (as on Atlassian's radius page). */
|
|
88
|
+
.sh-ex-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--bh-space-200); margin: 0 0 var(--bh-space-300); }
|
|
89
|
+
.sh-ex { display: flex; align-items: center; justify-content: center; min-height: calc(2 * var(--bh-space-1000) + var(--bh-space-400)); padding: var(--bh-space-400) var(--bh-space-300) var(--bh-space-1000); border: var(--bh-border-width-default) solid var(--bh-color-border); border-radius: var(--bh-radius-150); background: var(--bh-color-surface); }
|
|
90
|
+
|
|
91
|
+
.sh-ex-grid.is-one { grid-template-columns: minmax(0, 1fr); }
|
|
92
|
+
@container prose (max-width: 560px) { .sh-ex-grid { grid-template-columns: minmax(0, 1fr); } }
|
|
93
|
+
:root[data-theme='dark'] .sh-anno { --sh-hex-mix: 55%; }
|
|
94
|
+
@media (prefers-color-scheme: dark) { :root:not([data-theme='light']) .sh-anno { --sh-hex-mix: 55%; } }
|
|
95
|
+
|
|
96
|
+
/* Pins: a translucent hexagon centred on the corner, the corner's curve traced inside it,
|
|
97
|
+
a line straight into the hexagon and the token name. */
|
|
98
|
+
.sh-pin { position: relative; display: inline-flex; max-width: 100%; }
|
|
99
|
+
.sh-anno { --sh-m: var(--bh-space-300); --sh-lw: var(--bh-border-width-default); position: absolute; z-index: 2; top: calc(100% - var(--sh-m) / 2); display: flex; flex-direction: column; pointer-events: none; }
|
|
100
|
+
/* Corner pins sit on the curve itself, at its 45° point: r × (1 − 1/√2) in from the box corner. */
|
|
101
|
+
.sh-anno.is-corner { --sh-k: calc(var(--sh-r, 0px) * 0.2929); left: calc(var(--sh-k) - var(--sh-m) / 2); top: calc(100% - var(--sh-k) - var(--sh-m) / 2); align-items: flex-start; }
|
|
102
|
+
.sh-anno.is-bottom, .sh-anno.is-top { left: 50%; align-items: center; transform: translateX(-50%); }
|
|
103
|
+
.sh-anno.is-top { top: auto; bottom: calc(100% - var(--sh-m) / 2); flex-direction: column-reverse; }
|
|
104
|
+
.sh-mark { position: relative; flex: none; width: var(--sh-m); height: var(--sh-m); overflow: hidden; background: color-mix(in srgb, var(--bh-color-border-brand) var(--sh-hex-mix, 35%), transparent); clip-path: polygon(25% 0, 75% 0, 100% 50%, 75% 100%, 25% 100%, 0 50%); }
|
|
105
|
+
.sh-arc { position: absolute; bottom: calc(50% - var(--sh-k)); left: calc(50% - var(--sh-k)); width: calc(var(--sh-r) + 100%); height: calc(var(--sh-r) + 100%); border: 0 solid var(--bh-color-text-warning); border-bottom-width: var(--bh-border-width-default); border-left-width: var(--bh-border-width-default); border-bottom-left-radius: var(--sh-r); }
|
|
106
|
+
.sh-ln { flex: none; width: var(--sh-lw); height: var(--sh-len); background: var(--bh-color-text-subtle); }
|
|
107
|
+
.sh-anno.is-corner .sh-ln { margin-left: calc(var(--sh-m) / 2 - var(--sh-lw) / 2); }
|
|
108
|
+
.prose .sh-anno code, .sh-anno code { padding: var(--bh-space-025) var(--bh-space-075); border-radius: var(--bh-radius-050); color: var(--bh-color-text-inverse); background: var(--bh-color-surface-inverse); white-space: nowrap; font: var(--bh-font-code-default); font-size: var(--bh-font-size-100); }
|
|
109
|
+
|
|
110
|
+
.sh-menu > .sh-pin, .sh-table > .sh-pin, .sh-nav > .sh-pin { display: flex; }
|
|
111
|
+
.sh-table > .sh-pin > span:first-child, .sh-menu > .sh-pin > span:first-child, .sh-nav > .sh-pin > span:first-child { flex: 1; }
|
|
112
|
+
.sh-pin.is-wide { display: flex; width: min(100%, 24rem); }
|
|
113
|
+
.sh-pin.is-wide > .sh-alert { width: 100%; }
|
|
114
|
+
|
|
115
|
+
/* Border examples: the same cards, with a small dot that just touches the border and a dark line (as on Atlassian's border page). */
|
|
116
|
+
.sh-ex.is-b { padding: var(--bh-space-500) var(--bh-space-300) var(--bh-space-1000); }
|
|
117
|
+
.sh-ex.is-span { grid-column: 1 / -1; }
|
|
118
|
+
.sh-ex.is-left { justify-content: flex-start; padding-left: calc(2 * var(--bh-space-1000) + var(--bh-space-800)); padding-bottom: var(--bh-space-500); }
|
|
119
|
+
.sh-ex.is-left > .sh-frame { width: min(100%, 26rem); }
|
|
120
|
+
.sh-anno.is-solid { --sh-m: var(--bh-space-075); --sh-lw: var(--bh-border-width-selected); }
|
|
121
|
+
.sh-anno.is-solid .sh-mark { border-radius: var(--bh-radius-full); background: var(--bh-color-text); clip-path: none; }
|
|
122
|
+
.sh-anno.is-solid.is-bottom { top: 100%; }
|
|
123
|
+
.sh-anno.is-solid .sh-ln { background: var(--bh-color-text); }
|
|
124
|
+
.sh-anno.is-left { top: 50%; left: auto; right: calc(100% - var(--sh-m) / 2); flex-direction: row-reverse; align-items: center; transform: translateY(-50%); }
|
|
125
|
+
.sh-anno.is-left .sh-ln { width: var(--sh-len); height: var(--sh-lw); }
|
|
126
|
+
.sh-anno.is-solid.is-left { right: 100%; }
|
|
127
|
+
@container prose (max-width: 560px) {
|
|
128
|
+
.sh-ex.is-left { justify-content: center; padding: var(--bh-space-500) var(--bh-space-300) var(--bh-space-1000); }
|
|
129
|
+
.sh-anno.is-left, .sh-anno.is-solid.is-left { top: 100%; right: auto; left: calc(var(--bh-border-width-selected) / 2 - var(--sh-m) / 2); flex-direction: column; align-items: flex-start; transform: none; }
|
|
130
|
+
.sh-anno.is-left .sh-ln { width: var(--sh-lw); height: var(--sh-len-n, var(--sh-len)); margin-left: calc(var(--sh-m) / 2 - var(--sh-lw) / 2); }
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.sh-chip { display: inline-flex; align-items: center; gap: var(--bh-space-075); height: var(--bh-size-control-default); padding: 0 var(--bh-space-150); border: var(--bh-border-width-default) solid var(--bh-color-border-bold); border-radius: var(--bh-radius-full); color: var(--bh-color-text); background: var(--bh-color-surface); font: var(--bh-font-label-default); }
|
|
134
|
+
.sh-chip > span { color: var(--bh-color-text-subtle); }
|
|
135
|
+
|
|
136
|
+
|
|
137
|
+
/* Focus pins touch the ring itself: its outer edge is 4 px outside the box (offset 2 + width 2);
|
|
138
|
+
inside a menu the ring ends at the item's edge. */
|
|
139
|
+
.sh-pin > .sh-ring ~ .sh-anno.is-solid.is-bottom { top: calc(100% + var(--bh-state-focus-offset) + var(--bh-border-width-focused)); }
|