202 lines
9.6 KiB
TypeScript
202 lines
9.6 KiB
TypeScript
import React from 'react';
|
|
import { backstoryTheme } from '../BackstoryTheme';
|
|
import { Box, Typography, Paper, Container } from '@mui/material';
|
|
|
|
// This component provides a visual demonstration of the theme colors
|
|
const BackstoryThemeVisualizerPage = () => {
|
|
const colorSwatch = (color: string, name: string, textColor = '#fff') => (
|
|
<div className="flex flex-col items-center">
|
|
<div
|
|
className="w-20 h-20 rounded-lg shadow-md flex items-center justify-center mb-2"
|
|
style={{ backgroundColor: color, color: textColor }}>
|
|
{name}
|
|
</div>
|
|
<span className="text-xs">{color}</span>
|
|
</div>
|
|
);
|
|
|
|
return (
|
|
<Box sx={{ backgroundColor: 'background.default', minHeight: '100%', py: 4 }}>
|
|
<Container maxWidth="lg">
|
|
<Paper sx={{ p: 4, boxShadow: 2 }}>
|
|
|
|
<div className="p-8">
|
|
<h1 className="text-2xl font-bold mb-6" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Backstory Theme Visualization
|
|
</h1>
|
|
|
|
<div className="mb-8">
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Primary Colors
|
|
</h2>
|
|
<div className="flex space-x-4">
|
|
{colorSwatch(backstoryTheme.palette.primary.main, 'Primary', backstoryTheme.palette.primary.contrastText)}
|
|
{colorSwatch(backstoryTheme.palette.secondary.main, 'Secondary', backstoryTheme.palette.secondary.contrastText)}
|
|
{colorSwatch(backstoryTheme.palette.custom.highlight, 'Highlight', '#fff')}
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mb-8">
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Background Colors
|
|
</h2>
|
|
<div className="flex space-x-4">
|
|
{colorSwatch(backstoryTheme.palette.background.default, 'Default', '#000')}
|
|
{colorSwatch(backstoryTheme.palette.background.paper, 'Paper', '#000')}
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mb-8">
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Text Colors
|
|
</h2>
|
|
<div className="flex space-x-4">
|
|
{colorSwatch(backstoryTheme.palette.text.primary, 'Primary', '#fff')}
|
|
{colorSwatch(backstoryTheme.palette.text.secondary, 'Secondary', '#fff')}
|
|
</div>
|
|
</div>
|
|
|
|
<div className="mb-8 border p-6 rounded-lg" style={{ backgroundColor: backstoryTheme.palette.background.paper }}>
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Typography Examples
|
|
</h2>
|
|
|
|
<div className="mb-4">
|
|
<h1 style={{
|
|
fontFamily: backstoryTheme.typography.fontFamily,
|
|
fontSize: backstoryTheme.typography.h1.fontSize,
|
|
fontWeight: backstoryTheme.typography.h1.fontWeight,
|
|
color: backstoryTheme.typography.h1.color,
|
|
}}>
|
|
Heading 1 - Backstory Application
|
|
</h1>
|
|
</div>
|
|
|
|
<div className="mb-4">
|
|
<p style={{
|
|
fontFamily: backstoryTheme.typography.fontFamily,
|
|
fontSize: backstoryTheme.typography.body1.fontSize,
|
|
color: backstoryTheme.typography.body1.color,
|
|
}}>
|
|
Body Text - This is how the regular text content will appear in the Backstory application.
|
|
The application uses Roboto as its primary font family, with carefully selected sizing and colors.
|
|
</p>
|
|
</div>
|
|
|
|
{/* <div className="mt-6">
|
|
<a href="#" style={{
|
|
color: backstoryTheme.components?.MuiLink?.styleOverrides.root.color || "inherit",
|
|
textDecoration: backstoryTheme.components.MuiLink.styleOverrides.root.textDecoration,
|
|
}}>
|
|
This is how links will appear by default
|
|
</a>
|
|
</div> */}
|
|
</div>
|
|
|
|
<div className="mb-8">
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
UI Component Examples
|
|
</h2>
|
|
|
|
<div className="p-4 mb-4 rounded-lg" style={{ backgroundColor: backstoryTheme.palette.background.paper }}>
|
|
<div className="p-2 mb-4 rounded" style={{ backgroundColor: backstoryTheme.palette.primary.main }}>
|
|
<span style={{ color: backstoryTheme.palette.primary.contrastText }}>
|
|
AppBar Background
|
|
</span>
|
|
</div>
|
|
|
|
<div style={{
|
|
padding: '8px 16px',
|
|
backgroundColor: backstoryTheme.palette.primary.main,
|
|
color: backstoryTheme.palette.primary.contrastText,
|
|
display: 'inline-block',
|
|
borderRadius: '4px',
|
|
cursor: 'pointer',
|
|
fontFamily: backstoryTheme.typography.fontFamily,
|
|
}}>
|
|
Primary Button
|
|
</div>
|
|
|
|
<div className="mt-4" style={{
|
|
padding: '8px 16px',
|
|
backgroundColor: backstoryTheme.palette.secondary.main,
|
|
color: backstoryTheme.palette.secondary.contrastText,
|
|
display: 'inline-block',
|
|
borderRadius: '4px',
|
|
cursor: 'pointer',
|
|
fontFamily: backstoryTheme.typography.fontFamily,
|
|
}}>
|
|
Secondary Button
|
|
</div>
|
|
|
|
<div className="mt-4" style={{
|
|
padding: '8px 16px',
|
|
backgroundColor: backstoryTheme.palette.action.active,
|
|
color: '#fff',
|
|
display: 'inline-block',
|
|
borderRadius: '4px',
|
|
cursor: 'pointer',
|
|
fontFamily: backstoryTheme.typography.fontFamily,
|
|
}}>
|
|
Action Button
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div>
|
|
<h2 className="text-xl mb-4" style={{ color: backstoryTheme.palette.text.primary }}>
|
|
Theme Color Breakdown
|
|
</h2>
|
|
<table className="border-collapse">
|
|
<thead>
|
|
<tr>
|
|
<th className="border p-2 text-left"
|
|
style={{ backgroundColor: backstoryTheme.palette.background.default, color: backstoryTheme.palette.text.primary }}>Color Name</th>
|
|
<th className="border p-2 text-left"
|
|
style={{ backgroundColor: backstoryTheme.palette.background.default, color: backstoryTheme.palette.text.primary }}>Hex Value</th>
|
|
<th className="border p-2 text-left"
|
|
style={{ backgroundColor: backstoryTheme.palette.background.default, color: backstoryTheme.palette.text.primary }}>Description</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Primary Main</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.primary.main}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Midnight Blue - Used for main headers and primary UI elements</td>
|
|
</tr>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Primary Contrast</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.primary.contrastText}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Warm Gray - Text that appears on primary color backgrounds</td>
|
|
</tr>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Secondary Main</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.secondary.main}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Dusty Teal - Used for secondary actions and accents</td>
|
|
</tr>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Highlight</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.custom.highlight}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Golden Ochre - Used for highlights, accents, and important actions</td>
|
|
</tr>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Background Default</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.background.default}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Warm Gray - Main background color for the application</td>
|
|
</tr>
|
|
<tr>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Text Primary</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>{backstoryTheme.palette.text.primary}</td>
|
|
<td className="border p-2" style={{ color: backstoryTheme.palette.text.primary }}>Charcoal Black - Primary text color throughout the app</td>
|
|
</tr>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</Paper></Container></Box>
|
|
);
|
|
};
|
|
|
|
export {
|
|
BackstoryThemeVisualizerPage
|
|
}; |