2026-09-23 15:09:14 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
// Demo chrome — NOT part of the shipped stylesheet.
|
|
|
|
|
//
|
2026-09-23 15:32:24 +02:00
|
|
|
// What is left here is only the page's own chrome: the toolbar, the swatch
|
|
|
|
|
// grid, the section scaffolding, and the four image URLs pointed at this
|
|
|
|
|
// project's local mirror. The scroll frame itself graduated into the
|
|
|
|
|
// stylesheet (`layout/_page.scss`).
|
2026-09-23 15:09:14 +02:00
|
|
|
//
|
2026-09-23 15:32:24 +02:00
|
|
|
// Reached only from src/index.html, which is not a build input, so none of it
|
|
|
|
|
// can reach dist/tlig.css.
|
2026-09-23 15:09:14 +02:00
|
|
|
// -----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
@use '../sass/abstracts' as *;
|
|
|
|
|
|
|
|
|
|
$img: '/wp-content/includes/images';
|
|
|
|
|
|
2026-09-23 15:32:24 +02:00
|
|
|
// The scroll frame is a real component now (`layout/_page.scss`). All the demo
|
|
|
|
|
// does is point its four image tokens at the local mirror in `site/`, which is
|
|
|
|
|
// exactly the re-pointing the component was built to allow.
|
|
|
|
|
:root {
|
|
|
|
|
--tlig-ground: url('#{$img}/background_planche_1920.jpg');
|
|
|
|
|
--tlig-scroll-head: url('#{$img}/page/background-message-entete_cnd.png.webp');
|
|
|
|
|
--tlig-scroll-body: url('#{$img}/page/background-message-milieux1200x190-4_cnd.png.webp');
|
|
|
|
|
--tlig-scroll-foot: url('#{$img}/page/background-message-footer-1200x114_cnd.png.webp');
|
2026-09-23 15:09:14 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
body {
|
|
|
|
|
min-height: 100vh;
|
|
|
|
|
}
|
|
|
|
|
|
2026-09-23 15:32:24 +02:00
|
|
|
// Only the wide cuts are mirrored into this project. Rather than stretch them,
|
|
|
|
|
// the demo drops the frame below the tablet breakpoint and falls back to a
|
|
|
|
|
// plain parchment panel. The real component swaps in the narrow cuts instead.
|
2026-09-23 15:09:14 +02:00
|
|
|
@include down('tablet') {
|
|
|
|
|
.scroll__head,
|
|
|
|
|
.scroll__foot { display: none; }
|
|
|
|
|
|
|
|
|
|
.scroll__body {
|
|
|
|
|
margin: space('md');
|
|
|
|
|
padding: space('lg');
|
|
|
|
|
border-radius: radius('md');
|
|
|
|
|
background: rgba(247, 240, 224, 0.92);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Section scaffolding -----------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.demo-section {
|
|
|
|
|
padding-block: space('xl');
|
|
|
|
|
|
|
|
|
|
& + & {
|
|
|
|
|
border-block-start: 1px solid rgba(145, 116, 85, 0.35);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.demo-label {
|
|
|
|
|
display: flex;
|
|
|
|
|
align-items: baseline;
|
|
|
|
|
gap: space('sm');
|
|
|
|
|
margin-block-end: space('lg');
|
|
|
|
|
font-family: font('body');
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
letter-spacing: 0.14em;
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
color: $brown-600;
|
|
|
|
|
|
|
|
|
|
&::after {
|
|
|
|
|
content: '';
|
|
|
|
|
flex: 1;
|
|
|
|
|
height: 1px;
|
|
|
|
|
background: currentColor;
|
|
|
|
|
opacity: 0.35;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.demo-note {
|
|
|
|
|
margin-block-start: space('sm');
|
|
|
|
|
font-family: font('body');
|
|
|
|
|
font-size: 13px;
|
|
|
|
|
font-style: italic;
|
|
|
|
|
color: $brown-600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// A row of specimens that should sit side by side and wrap sanely.
|
|
|
|
|
.demo-row {
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
gap: space('md');
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Swatches ----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.swatch-grid {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
|
|
|
|
|
gap: space('sm');
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.swatch {
|
|
|
|
|
overflow: hidden;
|
|
|
|
|
border: 1px solid rgba(72, 32, 32, 0.15);
|
|
|
|
|
border-radius: radius('sm');
|
|
|
|
|
background: $white;
|
|
|
|
|
font-family: font('body');
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
line-height: 1.5;
|
|
|
|
|
|
|
|
|
|
// Checkerboard, so an alpha token reads as translucent rather than as a
|
|
|
|
|
// slightly different flat colour.
|
|
|
|
|
&__chip {
|
|
|
|
|
height: 56px;
|
|
|
|
|
background-image:
|
|
|
|
|
linear-gradient(45deg, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%),
|
|
|
|
|
linear-gradient(45deg, #ddd 25%, transparent 25%, transparent 75%, #ddd 75%);
|
|
|
|
|
background-size: 12px 12px;
|
|
|
|
|
background-position: 0 0, 6px 6px;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&__fill { height: 100%; }
|
|
|
|
|
|
|
|
|
|
&__meta { padding: space('2xs') space('xs'); }
|
|
|
|
|
&__name { font-weight: 700; color: $brown-900; }
|
|
|
|
|
&__value { color: $grey-500; font-variant-numeric: tabular-nums; }
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Type specimen table -----------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.specimen {
|
|
|
|
|
display: grid;
|
|
|
|
|
grid-template-columns: 8rem 1fr;
|
|
|
|
|
gap: space('sm') space('lg');
|
|
|
|
|
align-items: baseline;
|
|
|
|
|
|
|
|
|
|
@include down('phone') {
|
|
|
|
|
grid-template-columns: 1fr;
|
|
|
|
|
gap: space('2xs');
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
.specimen__key {
|
|
|
|
|
font-family: font('body');
|
|
|
|
|
font-size: 11px;
|
|
|
|
|
letter-spacing: 0.08em;
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
color: $brown-600;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Dark-ground demo --------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.demo-dark {
|
|
|
|
|
padding: space('lg');
|
|
|
|
|
border-radius: radius('md');
|
|
|
|
|
background: $brown-900;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// -- Toolbar -----------------------------------------------------------------
|
|
|
|
|
|
|
|
|
|
.toolbar {
|
|
|
|
|
position: sticky;
|
|
|
|
|
top: 0;
|
|
|
|
|
z-index: 10;
|
|
|
|
|
display: flex;
|
|
|
|
|
flex-wrap: wrap;
|
|
|
|
|
gap: space('md');
|
|
|
|
|
align-items: center;
|
|
|
|
|
padding: space('xs') space('md');
|
|
|
|
|
background: rgba(30, 14, 14, 0.94);
|
|
|
|
|
color: #f0e6d2;
|
|
|
|
|
font-family: font('body');
|
|
|
|
|
font-size: 12px;
|
|
|
|
|
backdrop-filter: blur(6px);
|
|
|
|
|
|
|
|
|
|
&__brand {
|
|
|
|
|
font-weight: 700;
|
|
|
|
|
letter-spacing: 0.1em;
|
|
|
|
|
text-transform: uppercase;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&__group {
|
|
|
|
|
display: flex;
|
|
|
|
|
gap: space('2xs');
|
|
|
|
|
align-items: center;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
&__spacer { flex: 1; }
|
|
|
|
|
|
2026-09-23 15:32:24 +02:00
|
|
|
// The toolbar's buttons are the real `.filter` component — the same pills the
|
|
|
|
|
// page uses. Nothing here restyles them; the dark ground is enough, because
|
|
|
|
|
// the pill takes its border from `currentColor`.
|
|
|
|
|
.filter {
|
2026-09-23 15:09:14 +02:00
|
|
|
color: inherit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
code {
|
|
|
|
|
font-variant-numeric: tabular-nums;
|
|
|
|
|
opacity: 0.8;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// "Show the boxes" — outlines every component so the structure is visible.
|
|
|
|
|
.show-boxes {
|
|
|
|
|
.site-footer__col,
|
|
|
|
|
.demo-row > *,
|
|
|
|
|
.field-group,
|
|
|
|
|
.scroll__body > * {
|
|
|
|
|
outline: 1px dashed rgba(202, 74, 31, 0.6);
|
|
|
|
|
outline-offset: 2px;
|
|
|
|
|
}
|
|
|
|
|
}
|