Files
kino/design_guidelines.json
2026-04-29 14:33:29 +00:00

111 lines
6.2 KiB
JSON

{
"theme": "dark",
"archetype": "5 (Jewel & Luxury)",
"brand_name": "Kino",
"colors": {
"background": "#050505",
"surface": "#0F0F0F",
"surface_hover": "#1A1A1A",
"primary_accent": "#D9381E",
"primary_accent_hover": "#ED4B32",
"text_primary": "#F2F2F2",
"text_secondary": "#8A8A8A",
"border": "#222222",
"glass_bg": "rgba(15, 15, 15, 0.6)",
"glass_border": "rgba(242, 242, 242, 0.08)"
},
"typography": {
"headings": {
"family": "Fraunces, serif",
"weights": ["400", "700", "900"],
"usage": "Movie titles, Hero headlines, Main section dividers. Use with tight tracking (tracking-tighter) for dramatic effect."
},
"body": {
"family": "Geist, sans-serif",
"weights": ["300", "400", "500", "600"],
"usage": "UI elements, synopses, metadata, navigation, buttons."
},
"scales": {
"h1": "text-5xl md:text-6xl font-black tracking-tighter leading-none",
"h2": "text-3xl md:text-4xl font-bold tracking-tight",
"h3": "text-xl md:text-2xl font-semibold",
"body": "text-base leading-relaxed text-[#8A8A8A]",
"metadata": "text-xs uppercase tracking-[0.2em] font-medium"
}
},
"spacing_and_layout": {
"philosophy": "Generous Spacing Philosophy with tension-driven asymmetry.",
"section_padding": "py-24 md:py-32",
"grid_gap": "gap-6 md:gap-8",
"hero": "100vh height, content pushed to bottom left, max gradient overlay bg-black/40 (DO NOT make it pitch black).",
"carousels": "Horizontal scroll with visible overflow, items do not stretch fully, padding on left to align with main container.",
"borders": "No rounded corners for media (sharp, cinematic edges) or maximum rounded-sm (2px) to keep it mature."
},
"components_strategy": {
"navigation": "Crystal Glassmorphism. backdrop-blur-2xl, bg-[#0F0F0F]/60, 1px bottom border-white/5. MUST be sticky with z-50.",
"hero_banner": "Full width, absolute positioning for background image. Content sits in a relative container at the bottom. Play button must use the primary_accent color.",
"movie_card": "Sharp edges, 1px border on hover, scale-105 transition (duration 300ms ease-out). No text underneath by default; metadata reveals on hover via a glass overlay.",
"modal_detail": "Split screen or heavy blurred background. Use Shadcn Dialog but completely remove the default white/black solid background, make it translucent glass or a huge edge-to-edge cinematic frame.",
"buttons": "Flat solid, no shadows. Primary CTA: bg-[#D9381E] text-white hover:bg-[#ED4B32]. Secondary CTA: glass or border-white/20 hover:bg-white/10.",
"inputs": "Shadcn standard but with bg-[#0F0F0F] border-[#222222] text-white focus:ring-[#D9381E] focus:border-[#D9381E]."
},
"motion_and_interactions": {
"hover_states": "Images scale up slightly (scale-105), text brightens (text_secondary to text_primary).",
"transitions": "All state changes must use 'transition-all duration-300 ease-out'.",
"page_load": "Fade in with slight upward translation."
},
"media": {
"instructions_to_main_agent": "Use ONLY these image URLs. Never use placeholders.",
"hero_banner": [
{
"url": "https://images.unsplash.com/photo-1705147651064-36aedc005020?crop=entropy&cs=srgb&fm=jpg&ixid=M3w3NTY2ODh8MHwxfHNlYXJjaHwxfHxjaW5lbWF0aWMlMjBsYW5kc2NhcGUlMjBkYXJrfGVufDB8fHx8MTc3NzQ3MzE2M3ww&ixlib=rb-4.1.0&q=85",
"description": "Cinematic dark person holding phone - good for a tech-thriller movie hero banner",
"category": "hero"
},
{
"url": "https://images.unsplash.com/photo-1629474468919-64a55bbae8eb?crop=entropy&cs=srgb&fm=jpg&ixid=M3w4NTYxODl8MHwxfHNlYXJjaHwzfHxjaW5lbWF0aWMlMjBtb3ZpZSUyMHBvc3RlciUyMGRhcmt8ZW58MHx8fHwxNzc3NDczMTUyfDA&ixlib=rb-4.1.0&q=85",
"description": "Movie poster hanging in dark hallway - good for library/browse empty state",
"category": "background"
}
],
"movie_posters": [
{
"url": "https://images.unsplash.com/photo-1773592612185-bd985ac2bfe2?crop=entropy&cs=srgb&fm=jpg&ixid=M3w4NTYxODl8MHwxfHNlYXJjaHwxfHxjaW5lbWF0aWMlMjBtb3ZpZSUyMHBvc3RlciUyMGRhcmt8ZW58MHx8fHwxNzc3NDczMTUyfDA&ixlib=rb-4.1.0&q=85",
"description": "Woman grimaces",
"category": "poster"
},
{
"url": "https://images.unsplash.com/photo-1613552777697-18e046be3fbd?crop=entropy&cs=srgb&fm=jpg&ixid=M3w4NTYxODl8MHwxfHNlYXJjaHwxfHxtb29keSUyMHBvcnRyYWl0JTIwYWN0b3IlMjBmaWxtfGVufDB8fHx8MTc3NzQ3MzE1Mnww&ixlib=rb-4.1.0&q=85",
"description": "Man in black shirt",
"category": "poster"
},
{
"url": "https://images.unsplash.com/photo-1579034655398-ca79a16647ec?crop=entropy&cs=srgb&fm=jpg&ixid=M3w4NTYxODl8MHwxfHNlYXJjaHwyfHxtb29keSUyMHBvcnRyYWl0JTIwYWN0b3IlMjBmaWxtfGVufDB8fHx8MTc3NzQ3MzE1Mnww&ixlib=rb-4.1.0&q=85",
"description": "Grayscale portrait of man",
"category": "poster"
},
{
"url": "https://images.pexels.com/photos/14599833/pexels-photo-14599833.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
"description": "Blurred motion Beyoglu",
"category": "poster"
},
{
"url": "https://images.pexels.com/photos/30704104/pexels-photo-30704104.jpeg?auto=compress&cs=tinysrgb&dpr=2&h=650&w=940",
"description": "Street view cinema",
"category": "poster"
}
],
"auth_background": [
{
"url": "https://images.unsplash.com/photo-1698159929270-c88bad6346fe?crop=entropy&cs=srgb&fm=jpg&ixid=M3w4NjA1ODR8MHwxfHNlYXJjaHwzfHxhYnN0cmFjdCUyMGRhcmslMjB0ZXh0dXJlJTIwZmlsbSUyMGdyYWlufGVufDB8fHx8MTc3NzQ3MzE2M3ww&ixlib=rb-4.1.0&q=85",
"description": "Dark fire abstract, good for login split screen",
"category": "auth"
}
]
},
"testing": {
"data_testid_rule": "All interactive elements, buttons, links, form inputs, menus, error messages MUST include a kebab-case data-testid attribute based on role."
},
"iconography": "lucide-react for UI icons. Keep stroke-width to 1.5 for a delicate, premium feel.",
"textures": "Add a subtle fixed full-screen div with pointer-events-none and a repeating noise SVG background at opacity-5 to give the entire app a tactile, cinematic film grain."
}