Yates Design System staging

Reference page for color, tokens, components, rollout, and unified accordion utilities. Ivory is site bg; Sand for bands. WCAG‑aware.

Palette (Core)

Ivory — Site Background
HEX #FAF9F6
Bright, hospitable base for pages.
White — Content Surface
HEX #FFFFFF
Cards/sections; crisp text edges.
Charcoal — Text & Dark Sections
HEX #2B2B2B
Primary text; high‑contrast bands.
Sage — Base Brand Hue
HEX #768C76
Links, secondary buttons, soft headers.
Gold — Accent & CTA
HEX #C8921F
Primary CTAs; highlights. Use sparingly.

Palette (Variants)

Sand — Section Band
HEX #F2ECE4
Warm rhythm between sections.
Sage‑300 — Soft Band
HEX #A2B5A2
Use sparingly to differentiate.
Sage‑700 — Hover/Active
HEX #5A6A5A
Hover states, emphasized links.
Gold‑300 — Soft Accent
HEX #E2BE6C
Badges and gentle highlights.
Gold‑700 — CTA Hover
HEX #9B6D14
Primary hover/active on CTAs.
Charcoal‑700 — Secondary Text
HEX #3A3A3A
Subheads, metadata.
Charcoal‑900 — Max Contrast
HEX #161616
Overlays/strict AA on images.
Stone — Borders/Dividers
HEX #E9E5DF
Card borders, table lines.

Accessibility Notes (WCAG 2.1 AA)

  • Body text: Charcoal on White/Ivory (≥16–18px).
  • Headings: Charcoal; avoid Gold/Sage for headings on light backgrounds.
  • Links: Sage default → Charcoal hover; underline visible.
  • Buttons: Gold bg + dark text; Sage bg + near‑black text; hover darkens.
  • Bands: Sand & Sage‑300 for separation; keep text Charcoal.
  • Focus: Ensure visible focus outlines; keyboard test with Tab.

Design Tokens (Copy/Paste)

Use these variables on new pages to style locally without changing Global Styles.

:root{
  --ivory:#FAF9F6; --white:#FFFFFF;
  --charcoal:#2B2B2B; --charcoal-700:#3A3A3A; --charcoal-900:#161616;
  --sage:#768C76; --sage-300:#A2B5A2; --sage-700:#5A6A5A;
  --gold:#C8921F; --gold-300:#E2BE6C; --gold-700:#9B6D14;
  --sand:#F2ECE4; --stone:#E9E5DF;
}

Components (Preview)

Band · Ivory — universal background for breathable layout.
Band · Sand — section rhythm with subtle warmth.
Band · Sage‑300 — limited use for feature highlights.
Band · Gold‑300 — badges & small highlights.
Band · Charcoal — for quotes or high‑contrast hero blocks.

Type & Link Guidance

  • Headings: Charcoal only on light surfaces.
  • Body: Charcoal; 18–20px base recommended.
  • Links: Sage by default → Charcoal on hover; keep underline.
  • Buttons: Primary Gold (dark text), Secondary Sage (near‑black), Outline Charcoal.

AA targets: 4.5:1 for body; 3:1 for large text (≥24px regular or 18.66px bold).

Rollout Notes

  1. Phase 1: Apply tokens locally on new pages (Homepage hero, Staff, one Ministry page).
  2. Phase 2: Expand to About, Events; align slides/social to palette; collect feedback.
  3. Phase 3: Flip Global Styles after review; keep Realm monochrome if desired.

Vision Anchor

Snapshot of the rebuild aims for fast recall.

  • Rallying Point: A digital front porch and theological centerline.
  • Community Signpost: Findable, credible, compelling to seekers.
  • Contact Point for Outsiders: Reduce friction from curiosity to participation.
  • Information Hub for Insiders: Clear, current pathways for events, giving, service, and space requests.
Guiding Principle · Minimal, hospitable design serving both first‑time visitors and long‑time members.

Legacy Blue Accordions (Examples)

Accordion Boilerplate for Code-Driven Memos
🧾 Memo to Self: Accordion Boilerplate for Code-Driven Memos …
Color & Tokens
:root { --ivory:#FAF9F6; --white:#FFFFFF; --charcoal:#2B2B2B; --sage:#768C76; --gold:#C8921F; }
Developer Utilities · Unified Accordions (Legacy + Yates)
<style>
  :root{ --ivory:var(--ivory,#FAF9F6); --white:var(--white,#FFFFFF); --charcoal:var(--charcoal,#2B2B2B); --charcoal-700:var(--charcoal-700,#3A3A3A); --sage:var(--sage,#768C76); --gold:var(--gold,#C8921F); --gold-700:var(--gold-700,#9B6D14); --stone:var(--stone,#E9E5DF); --blue-900:#1D3557; --blue-600:#457B9D; --blue-50:#F8FAFB; --green-600:#2A9D8F; --code-bg:#F1FAEE; }
  .cheat-section{ max-width:1120px; margin:3rem auto; padding:0 20px; color:var(--charcoal); font-family:system-ui,-apple-system,Segoe UI,Roboto,Inter,"Helvetica Neue",Arial,sans-serif; }
  .legacy-acc .accordion{ background:var(--blue-50); border:1px solid #DDE6ED; border-radius:10px; margin-bottom:1rem; overflow:hidden; box-shadow:0 2px 5px rgba(0,0,0,.03); }
  .legacy-acc .accordion-header{ background:var(--blue-900); color:#fff; padding:1rem 1.25rem; cursor:pointer; font-weight:700; position:relative; }
  .legacy-acc .accordion-header::after{ content:'+'; position:absolute; right:1.25rem; font-size:1.25rem; transition:transform .2s ease; }
  .legacy-acc .accordion.active .accordion-header::after{ content:'–'; }
  .legacy-acc .accordion-content{ display:none; padding:1.25rem; background:#fff; font-size:.95rem; line-height:1.65; border-top:1px solid #eee; white-space:pre-wrap; position:relative; font-family:"Fira Code","Courier New",monospace; color:var(--charcoal); }
  .legacy-acc .copy-btn{ position:absolute; top:1rem; right:1rem; background:var(--blue-600); color:#fff; border:0; padding:.4rem .75rem; border-radius:6px; font-size:.8rem; cursor:pointer; transition:background-color .2s ease; }
  .legacy-acc .copy-btn:hover{ background:var(--blue-900); }
  .legacy-acc .copy-btn.clicked{ background:var(--green-600)!important; }
  .legacy-acc .code-block{ font-family:"Fira Code","Courier New",monospace; font-size:.9rem; background:var(--code-bg); padding:1rem; border-radius:8px; border:1px solid #DDE6ED; overflow-x:auto; color:#0f1f1f; }
  .y-acc{ display:grid; gap:12px; }
  .y-acc .acc-item{ border:1px solid var(--stone); border-radius:16px; background:var(--white); box-shadow:0 2px 8px rgba(0,0,0,.06); overflow:hidden; }
  .y-acc summary.accordion-header{ list-style:none; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:14px 16px; background:var(--ivory); color:var(--charcoal); font-weight:800; cursor:pointer; }
  .y-acc .acc-item[open] summary.accordion-header{ background:#F2ECE4; }
  .y-acc .accordion-content{ padding:14px 16px 16px; }
  .y-acc .accordion-content pre{ background:#0f0f0f; color:#e9e9e9; padding:14px; border-radius:12px; overflow:auto; margin:0 0 10px 0; }
  .y-acc .note{ color:var(--charcoal-700); font-size:14px; margin:6px 0 0; }
  .y-acc .copy-btn{ background:var(--gold); color:#1f1400; border:0; border-radius:999px; padding:8px 12px; font-weight:800; cursor:pointer; box-shadow:0 2px 8px rgba(0,0,0,.06); }
  .y-acc .copy-btn:hover{ background:var(--gold-700); color:#fff6e6; }
  .y-acc summary.accordion-header::-webkit-details-marker{ display:none; }
</style>

<div class="cheat-section legacy-acc">
  <div class="accordion" role="region" aria-label="Example">
    <div class="accordion-header" tabindex="0">Legacy Accordion Title</div>
    <div class="accordion-content" id="legacy-1">
      <button class="copy-btn" data-copy-target="legacy-1">Copy</button>
      <pre class="code-block"><code>... legacy content ...</code></pre>
    </div>
  </div>
</div>

<section class="cheat-section y-acc" aria-label="Builder Cheat Sheet">
  <details class="acc-item" id="acc-example">
    <summary class="accordion-header">
      <span>Yates Accordion Title</span>
      <button class="copy-btn" type="button" data-copy-selector="#acc-example pre code">Copy</button>
    </summary>
    <div class="accordion-content">
      <pre><code>... yates content ...</code></pre>
    </div>
  </details>
</section>

<script>
(function(){
  document.querySelectorAll('.legacy-acc .accordion').forEach(acc => {
    const header = acc.querySelector('.accordion-header');
    const content = acc.querySelector('.accordion-content');
    const toggle = () => { acc.classList.toggle('active'); content.style.display = acc.classList.contains('active') ? 'block' : 'none'; };
    header.addEventListener('click', toggle);
    header.addEventListener('keydown', (e)=>{ if(e.key==='Enter'||e.key===' '){ e.preventDefault(); toggle(); }});
  });
  document.addEventListener('click', function(e){
    const btn = e.target.closest('.copy-btn'); if(!btn) return;
    const id  = btn.getAttribute('data-copy-target');
    const sel = btn.getAttribute('data-copy-selector');
    let text = '';
    if(id){ const el = document.getElementById(id); if(el) text = el.innerText; }
    else if(sel){ const code = document.querySelector(sel); if(code) text = code.innerText; }
    if(!text) return;
    navigator.clipboard.writeText(text).then(()=>{ const orig = btn.textContent; btn.textContent = '✓ Copied!'; btn.classList.add('clicked'); setTimeout(()=>{ btn.textContent = orig; btn.classList.remove('clicked'); }, 1200); });
  });
})();
</script>

Yates Baptist Church uses Accessibility Checker to monitor our website's accessibility. Read our Accessibility Policy.

Video

Scroll to Top