| """ |
| Cedar-Copper Design Tokens |
| ============================ |
| Shared palette + decorative-glyph module for the build-small-hackathon monorepo. |
| |
| Each project's own CSS/UI embeds the tokens it needs (this file is a |
| reference, not imported at runtime). |
| |
| Decorative Unicode glyphs in this file are intentionally NOT used in HF |
| Spaces metadata — see llms.txt "HF Agents CLI" notes. |
| """ |
|
|
| |
| PUU = "\u1438" |
| SHOO = "\u1514" |
| BII = "\u142A" |
| MII = "\u14A1" |
| WA = "\u1418" |
| GO = "\u1472" |
| AN = "\u14B0" |
|
|
| SUN_RAY = "\u263C" |
| SUN_BLACK = "\u2600" |
| LEAF = "\u2618" |
| FLOWER = "\u2740" |
| MEDICINE_WHEEL = "\u2697" |
| ARROW_UP = "\u21B3" |
| CIRCUIT = "\u25C8" |
| DIAMOND = "\u25C6" |
| DIAMOND_O = "\u25C7" |
|
|
| |
| PALETTE = { |
| |
| "sky": "#5BA4D9", |
| "water": "#1B4965", |
| "ice": "#BEE9E8", |
| "frost": "#CAF0F8", |
| |
| "sun": "#F2A93B", |
| "sunlight": "#FFB347", |
| "ember": "#E76F51", |
| |
| "birch": "#F5F1E8", |
| "terracotta":"#C8553D", |
| "earth": "#8B3A1F", |
| "moss": "#588157", |
| "forest": "#3D6A4A", |
| "spruce": "#1B4332", |
| |
| "night": "#0F1A2C", |
| "ash": "#3A2E2A", |
| "stone": "#A89F91", |
| "ink": "#1A1F2E", |
| } |
|
|
| |
| def header(title: str, en: str) -> str: |
| """Cedar-copper banner header for a project. |
| |
| Usage: |
| header("TinyBard", "MICRO TEXT ADVENTURE") |
| """ |
| line = f"{DIAMOND}{CIRCUIT}{DIAMOND_O}" |
| return ( |
| f"\n{line}{CIRCUIT}{PUU} {title} {SHOO} [{en.upper()}] " |
| f"{CIRCUIT}{line}\n" |
| ) |
|
|
|
|
| def footer() -> str: |
| """Closing banner.""" |
| return f"\n{DIAMOND_O}{CIRCUIT}{DIAMOND} {SUN_RAY} \u00b7 {LEAF} \u00b7 {WATER_ICON()} \u00b7 {SUN_BLACK} {CIRCUIT}{DIAMOND}{DIAMOND_O}\n" |
|
|
|
|
| def WATER_ICON() -> str: |
| return "\u2248" |
|
|
|
|
| |
| CSS_VARS = f""" |
| :root {{ |
| --cc-sky: {PALETTE['sky']}; |
| --cc-water: {PALETTE['water']}; |
| --cc-ice: {PALETTE['ice']}; |
| --cc-sun: {PALETTE['sun']}; |
| --cc-sunlight: {PALETTE['sunlight']}; |
| --cc-ember: {PALETTE['ember']}; |
| --cc-birch: {PALETTE['birch']}; |
| --cc-terra: {PALETTE['terracotta']}; |
| --cc-earth: {PALETTE['earth']}; |
| --cc-moss: {PALETTE['moss']}; |
| --cc-forest: {PALETTE['forest']}; |
| --cc-spruce: {PALETTE['spruce']}; |
| --cc-night: {PALETTE['night']}; |
| --cc-ash: {PALETTE['ash']}; |
| --cc-stone: {PALETTE['stone']}; |
| --cc-ink: {PALETTE['ink']}; |
| }} |
| """ |
|
|
|
|
| |
| def style_banner() -> str: |
| """A standard top-of-app banner with cedar-copper styling.""" |
| return """ |
| /* === CEDAR-COPPER BANNER ============================================== */ |
| .cc-banner { |
| display: flex; |
| align-items: center; |
| justify-content: center; |
| gap: 0.6em; |
| padding: 14px 18px; |
| background: linear-gradient(95deg, var(--cc-sky) 0%, var(--cc-water) 100%); |
| color: var(--cc-birch); |
| border-bottom: 1px solid rgba(255, 179, 71, 0.35); |
| font-family: Georgia, 'Iowan Old Style', serif; |
| letter-spacing: 0.5px; |
| text-shadow: 0 1px 2px rgba(15, 26, 44, 0.35); |
| } |
| .cc-banner .syll { font-size: 1.4em; opacity: 0.85; } |
| .cc-banner .title { font-size: 1.05em; font-weight: 600; } |
| .cc-banner .glyph { |
| display: inline-block; |
| transform: translateY(-1px); |
| font-size: 1.1em; |
| color: var(--cc-sunlight); |
| } |
| /* ===================================================================== */ |
| """ |
|
|
|
|
| |
| WELCOME = ( |
| f"{PUU} Welcome {SHOO} \u2014 The land remembers you. " |
| f"{SUN_RAY} {LEAF} {WATER_ICON()}" |
| ) |
|
|
|
|
| |
| PIP_GREETING_CEDAR_COPPER = ( |
| f"{PUU} Hello, friend {SHOO} \u2014 I am Pip, the friend of the moss " |
| f"and the small winds. Sit. Breathe. The sun is in no hurry. {SUN_BLACK}" |
| ) |
|
|
|
|
| if __name__ == "__main__": |
| print(header("Build Small Hackathon", "CODER SANCTUARY")) |
| print(WELCOME) |
| print(PIP_GREETING_CEDAR_COPPER) |
| print(footer()) |
|
|