complete story 10.1 with qa tests
This commit is contained in:
+70
-48
@@ -27,27 +27,32 @@
|
||||
--font-size-3xl: 2rem; /* 32px - H2 */
|
||||
--font-size-4xl: 2.5rem; /* 40px - H1 */
|
||||
|
||||
/* ==========================================================================
|
||||
NEW LIBRA Brand Palette (Story 10.1)
|
||||
========================================================================== */
|
||||
|
||||
/* Primary Brand Colors */
|
||||
--color-navy: #0A1F44;
|
||||
--color-gold: #D4AF37;
|
||||
--color-primary: #4A4A42; /* Charcoal - primary backgrounds, text */
|
||||
--color-accent: #C9C4BA; /* Warm Gray - secondary backgrounds, accents */
|
||||
--color-accent-light: #E8E4DC; /* Off-White - light backgrounds */
|
||||
--color-background: #E8E4DC; /* Off-White - light backgrounds */
|
||||
--color-text: #1A1A1A; /* Deep Black - logo artwork, headlines */
|
||||
|
||||
/* Supporting Colors */
|
||||
--color-gold-light: #F4E4B8;
|
||||
--color-cream: #F9F7F4;
|
||||
--color-charcoal: #2C3E50;
|
||||
/* Semantic Aliases - used by components */
|
||||
--color-accent-content: #C9C4BA; /* Warm Gray */
|
||||
--color-accent-foreground: #4A4A42; /* Charcoal */
|
||||
|
||||
/* Status Colors */
|
||||
/* Backward Compatibility Aliases (legacy class names) */
|
||||
--color-navy: var(--color-primary); /* Maps to Charcoal */
|
||||
--color-gold: var(--color-accent); /* Maps to Warm Gray */
|
||||
--color-gold-light: var(--color-accent-light); /* Maps to Off-White */
|
||||
--color-cream: var(--color-background); /* Maps to Off-White */
|
||||
--color-charcoal: var(--color-text); /* Maps to Deep Black */
|
||||
|
||||
/* Status Colors - unchanged per AC7 */
|
||||
--color-success: #27AE60;
|
||||
--color-danger: #E74C3C;
|
||||
--color-warning: #F39C12;
|
||||
|
||||
/* Semantic Aliases - used by components */
|
||||
--color-primary: var(--color-navy);
|
||||
--color-accent: var(--color-gold);
|
||||
--color-accent-content: var(--color-gold);
|
||||
--color-accent-foreground: var(--color-navy);
|
||||
--color-background: var(--color-cream);
|
||||
--color-text: var(--color-charcoal);
|
||||
}
|
||||
|
||||
@layer theme {
|
||||
@@ -92,13 +97,13 @@ select[data-flux-control],
|
||||
@apply border-charcoal/30 rounded-md transition-colors;
|
||||
}
|
||||
|
||||
/* Focus states - Gold border with subtle ring */
|
||||
/* Focus states - Warm Gray border with subtle ring */
|
||||
input:focus[data-flux-control],
|
||||
textarea:focus[data-flux-control],
|
||||
select:focus[data-flux-control],
|
||||
[data-flux-control] input:focus,
|
||||
[data-flux-select-button]:focus {
|
||||
@apply outline-hidden border-gold ring-2 ring-gold/20;
|
||||
@apply outline-hidden border-accent ring-2 ring-accent/20;
|
||||
}
|
||||
|
||||
/* Textarea minimum height */
|
||||
@@ -106,16 +111,16 @@ textarea[data-flux-control] {
|
||||
@apply min-h-[120px] resize-y;
|
||||
}
|
||||
|
||||
/* Checkbox styling - gold accent when checked */
|
||||
/* Checkbox styling - Warm Gray accent when checked */
|
||||
[data-flux-checkbox] input[type="checkbox"],
|
||||
input[type="checkbox"][data-flux-control] {
|
||||
@apply w-5 h-5 rounded border-charcoal/30 text-gold focus:ring-gold focus:ring-offset-0;
|
||||
@apply w-5 h-5 rounded border-charcoal/30 text-accent focus:ring-accent focus:ring-offset-0;
|
||||
}
|
||||
|
||||
/* Radio styling - gold accent when selected */
|
||||
/* Radio styling - Warm Gray accent when selected */
|
||||
[data-flux-radio] input[type="radio"],
|
||||
input[type="radio"][data-flux-control] {
|
||||
@apply w-5 h-5 border-charcoal/30 text-gold focus:ring-gold focus:ring-offset-0;
|
||||
@apply w-5 h-5 border-charcoal/30 text-accent focus:ring-accent focus:ring-offset-0;
|
||||
}
|
||||
|
||||
/* Error state styling for Flux fields */
|
||||
@@ -157,12 +162,28 @@ input[type="radio"][data-flux-control] {
|
||||
@apply size-4;
|
||||
} */
|
||||
|
||||
/* Prose Navy styling for blog posts */
|
||||
/* Prose Brand styling for blog posts (formerly prose-navy) */
|
||||
.prose-brand {
|
||||
--tw-prose-headings: var(--color-primary); /* Charcoal */
|
||||
--tw-prose-links: var(--color-accent); /* Warm Gray */
|
||||
--tw-prose-bold: var(--color-primary); /* Charcoal */
|
||||
--tw-prose-body: var(--color-text); /* Deep Black */
|
||||
}
|
||||
|
||||
.prose-brand a {
|
||||
text-decoration: underline;
|
||||
}
|
||||
|
||||
.prose-brand a:hover {
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* Backward compatibility alias for prose-navy */
|
||||
.prose-navy {
|
||||
--tw-prose-headings: var(--color-navy);
|
||||
--tw-prose-links: var(--color-gold);
|
||||
--tw-prose-bold: var(--color-navy);
|
||||
--tw-prose-body: var(--color-charcoal);
|
||||
--tw-prose-headings: var(--color-primary);
|
||||
--tw-prose-links: var(--color-accent);
|
||||
--tw-prose-bold: var(--color-primary);
|
||||
--tw-prose-body: var(--color-text);
|
||||
}
|
||||
|
||||
.prose-navy a {
|
||||
@@ -170,7 +191,7 @@ input[type="radio"][data-flux-control] {
|
||||
}
|
||||
|
||||
.prose-navy a:hover {
|
||||
color: var(--color-gold-light);
|
||||
color: var(--color-primary);
|
||||
}
|
||||
|
||||
/* Dynamic Font Selection based on language */
|
||||
@@ -215,18 +236,18 @@ small, .text-sm {
|
||||
Button Styling System (Story 9.4)
|
||||
========================================================================== */
|
||||
|
||||
/* Primary button - Gold background with Navy text */
|
||||
/* Primary button - Charcoal background with Off-White text */
|
||||
.btn-primary {
|
||||
@apply bg-gold text-navy rounded-md px-6 py-3 font-semibold transition-colors;
|
||||
@apply hover:bg-gold-light;
|
||||
@apply focus:outline-none focus:ring-2 focus:ring-gold focus:ring-offset-2;
|
||||
@apply bg-primary text-accent-light rounded-md px-6 py-3 font-semibold transition-colors;
|
||||
@apply hover:bg-primary/90;
|
||||
@apply focus:outline-none focus:ring-2 focus:ring-accent focus:ring-offset-2;
|
||||
}
|
||||
|
||||
/* Secondary button - Outlined with Gold border */
|
||||
/* Secondary button - Outlined with Warm Gray border, Charcoal text */
|
||||
.btn-secondary {
|
||||
@apply bg-transparent border-2 border-gold text-gold rounded-md px-6 py-3 font-semibold transition-colors;
|
||||
@apply hover:bg-gold hover:text-navy;
|
||||
@apply focus:outline-none focus:ring-2 focus:ring-gold focus:ring-offset-2;
|
||||
@apply bg-transparent border-2 border-accent text-primary rounded-md px-6 py-3 font-semibold transition-colors;
|
||||
@apply hover:bg-accent hover:text-primary;
|
||||
@apply focus:outline-none focus:ring-2 focus:ring-accent focus:ring-offset-2;
|
||||
}
|
||||
|
||||
/* Danger button - Red background */
|
||||
@@ -315,7 +336,7 @@ button.btn-danger:disabled {
|
||||
/* Input field styling */
|
||||
.input-field {
|
||||
@apply w-full border border-charcoal/30 rounded-md px-4 py-3
|
||||
focus:border-gold focus:ring-2 focus:ring-gold/20
|
||||
focus:border-accent focus:ring-2 focus:ring-accent/20
|
||||
transition-colors outline-none bg-white;
|
||||
}
|
||||
|
||||
@@ -349,7 +370,7 @@ button.btn-danger:disabled {
|
||||
/* Textarea specific styling */
|
||||
.textarea-field {
|
||||
@apply w-full border border-charcoal/30 rounded-md px-4 py-3
|
||||
focus:border-gold focus:ring-2 focus:ring-gold/20
|
||||
focus:border-accent focus:ring-2 focus:ring-accent/20
|
||||
transition-colors outline-none bg-white
|
||||
min-h-[120px] resize-y;
|
||||
}
|
||||
@@ -357,20 +378,20 @@ button.btn-danger:disabled {
|
||||
/* Select dropdown styling */
|
||||
.select-field {
|
||||
@apply w-full border border-charcoal/30 rounded-md px-4 py-3
|
||||
focus:border-gold focus:ring-2 focus:ring-gold/20
|
||||
focus:border-accent focus:ring-2 focus:ring-accent/20
|
||||
transition-colors outline-none bg-white;
|
||||
}
|
||||
|
||||
/* Custom checkbox styling */
|
||||
.checkbox-custom {
|
||||
@apply w-5 h-5 rounded border-charcoal/30 text-gold
|
||||
focus:ring-gold focus:ring-offset-0;
|
||||
@apply w-5 h-5 rounded border-charcoal/30 text-accent
|
||||
focus:ring-accent focus:ring-offset-0;
|
||||
}
|
||||
|
||||
/* Custom radio styling */
|
||||
.radio-custom {
|
||||
@apply w-5 h-5 border-charcoal/30 text-gold
|
||||
focus:ring-gold focus:ring-offset-0;
|
||||
@apply w-5 h-5 border-charcoal/30 text-accent
|
||||
focus:ring-accent focus:ring-offset-0;
|
||||
}
|
||||
|
||||
/* Checkbox/Radio with error state */
|
||||
@@ -634,7 +655,7 @@ img, video, iframe {
|
||||
.timeline-dot {
|
||||
@apply absolute start-2 sm:start-4;
|
||||
@apply w-4 h-4 sm:w-5 sm:h-5;
|
||||
@apply rounded-full bg-gold;
|
||||
@apply rounded-full bg-accent;
|
||||
@apply transform -translate-x-1/2;
|
||||
}
|
||||
|
||||
@@ -728,7 +749,8 @@ img, video, iframe {
|
||||
}
|
||||
|
||||
.card-hover:hover {
|
||||
@apply -translate-y-0.5 shadow-card-hover;
|
||||
@apply -translate-y-0.5;
|
||||
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
|
||||
}
|
||||
|
||||
/* Link color transition */
|
||||
@@ -738,7 +760,7 @@ img, video, iframe {
|
||||
|
||||
/* Skeleton loader - pulse animation */
|
||||
.skeleton {
|
||||
@apply animate-pulse bg-charcoal/10 rounded;
|
||||
@apply animate-pulse bg-accent/30 rounded;
|
||||
}
|
||||
|
||||
/* Toast animation classes */
|
||||
@@ -808,15 +830,15 @@ img, video, iframe {
|
||||
WCAG 2.1 AA Compliance
|
||||
========================================================================== */
|
||||
|
||||
/* Focus styles - visible gold outline for keyboard navigation */
|
||||
/* Focus styles - visible Warm Gray outline for keyboard navigation */
|
||||
:focus-visible {
|
||||
@apply outline-2 outline-offset-2 outline-gold;
|
||||
@apply outline-2 outline-offset-2 outline-accent;
|
||||
}
|
||||
|
||||
/* Skip link - hidden until focused, then appears at top-start */
|
||||
.skip-link {
|
||||
@apply sr-only focus:not-sr-only focus:absolute focus:top-4 focus:start-4
|
||||
focus:bg-gold focus:text-navy focus:px-4 focus:py-2 focus:rounded-md
|
||||
focus:bg-accent focus:text-primary focus:px-4 focus:py-2 focus:rounded-md
|
||||
focus:font-semibold focus:z-[100];
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user