From 9bd292153bd097eec2790599f1b5ece6289a85b3 Mon Sep 17 00:00:00 2001 From: rdrew Date: Thu, 14 May 2026 10:39:44 -0300 Subject: [PATCH 1/3] [nb] Add: d11_theme_reqirements.md --- .index | 1 + d11_theme_reqirements.md | 1 + 2 files changed, 2 insertions(+) create mode 100644 d11_theme_reqirements.md diff --git a/.index b/.index index daccc5f..f13cac4 100644 --- a/.index +++ b/.index @@ -27,3 +27,4 @@ past_ssh.md bookmarks video_watch_list.md vcr_dvd_purchase.md +d11_theme_reqirements.md diff --git a/d11_theme_reqirements.md b/d11_theme_reqirements.md new file mode 100644 index 0000000..c228f5e --- /dev/null +++ b/d11_theme_reqirements.md @@ -0,0 +1 @@ +D11 theme set up From 9c8679652a94e4894fbe8f6482ce0656670b0081 Mon Sep 17 00:00:00 2001 From: rdrew Date: Thu, 14 May 2026 10:40:40 -0300 Subject: [PATCH 2/3] [nb] Edit: d11_theme_reqirements.md --- d11_theme_reqirements.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/d11_theme_reqirements.md b/d11_theme_reqirements.md index c228f5e..c71df1d 100644 --- a/d11_theme_reqirements.md +++ b/d11_theme_reqirements.md @@ -1 +1 @@ -D11 theme set up +# D11 theme set up From 9ae0555defb14e20bfa54f8d040484e9a462809b Mon Sep 17 00:00:00 2001 From: rdrew Date: Thu, 14 May 2026 10:41:27 -0300 Subject: [PATCH 3/3] [nb] Edit: d11_theme_reqirements.md --- d11_theme_reqirements.md | 207 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 207 insertions(+) diff --git a/d11_theme_reqirements.md b/d11_theme_reqirements.md index c71df1d..89ec190 100644 --- a/d11_theme_reqirements.md +++ b/d11_theme_reqirements.md @@ -1 +1,208 @@ # D11 theme set up + +What I would recommend for your stack +Core stack +Reset / normalize + +Use: + +Modern Normalize + +Very small and sensible. + +Design tokens / vars + +Use either: + +your own variables +or selectively import from Open Props + +Open Props + +You do not need the whole library. + +You can literally copy only the tokens you want. + +Example: + +:root { +--font-sans: system-ui, sans-serif; + +--size-1: 0.25rem; +--size-2: 0.5rem; +--size-3: 1rem; +--size-4: 1.5rem; + +--radius-2: 8px; + +--surface-1: #ffffff; +--surface-2: #f5f5f5; + +--text-1: #111; +--text-2: #555; + +--brand: hsl(210 90% 50%); +} + +That alone gets you surprisingly far. + +Native CSS nesting is now good enough + +You can now do: + +.card { +padding: var(--size-4); + +& h2 { +margin-block-start: 0; +} + +& a { +color: var(--brand); +} +} + +No Sass needed. + +Browser support is now solid. + +Cascade layers are a huge replacement for old Sass architecture + +This is one of the biggest modern CSS improvements. + +@layer reset, tokens, base, layout, components, utilities; + +Then: + +@layer base { +body { +font-family: var(--font-sans); +} +} + +This gives you predictable override behavior without specificity nightmares. + +Honestly better than many old Sass architectures. + +Container queries are transformative for Drupal theming + +Instead of: + +@media (min-width: 900px) + +you can do: + +@container (min-width: 40rem) + +This is fantastic for: + +paragraphs +blocks +views +reusable Drupal components + +because components respond to their container, not the viewport. + +That maps beautifully to Drupal’s block-based structure. + +Suggested file structure + +Something like: + +css/ +reset.css +tokens.css +base.css +layout.css +components/ +buttons.css +cards.css +forms.css +navigation.css + +Then load in your .libraries.yml. + +Very maintainable. + +I would honestly skip Pico entirely then + +Given what you just said, I think you may actually prefer: + +normalize/reset +your own tokens +semantic HTML +native CSS features +tiny component CSS + +instead of Pico. + +Because Pico is opinionated. +You may eventually find yourself undoing its typography/layout assumptions. + +Whereas your own token system: + +stays tiny +teaches future-you exactly how the site works +avoids framework drift +keeps Drupal Twig very clean +Modern CSS features worth embracing immediately + +These are absolutely worth using now: + +clamp() +font-size: clamp(1rem, 2vw, 1.5rem); +logical properties +margin-block: 1rem; +padding-inline: 2rem; + +Much cleaner than top/right/bottom/left. + +:where() + +Low-specificity selectors: + +:where(article, section, aside) h2 { +margin-top: 0; +} + +Excellent for maintainability. + +color-mix() +background: color-mix(in srgb, var(--brand), white 90%); + +Incredibly useful. + +Tooling I would still keep + +Even without preprocessing, I’d still consider: + +Vite only for: +live reload +JS bundling +asset handling + +NOT CSS transforms. + +Or skip even that initially. + +Modern Drupal theming can genuinely be: + +CSS files +ES modules +libraries.yml +done. + +And that’s refreshing compared to the old webpack/gulp era. + +This approach fits Drupal especially well + +Drupal’s strengths are: + +semantic HTML +server rendering +reusable structured content +progressive enhancement + +A lightweight native CSS architecture aligns with that extremely well. + +You avoid importing frontend-app complexity into a CMS that doesn’t necessarily benefit from it.