66 lines
1.2 KiB
TypeScript
66 lines
1.2 KiB
TypeScript
import { define, Styles } from '../src'
|
|
|
|
export const Body = define('Body', {
|
|
base: 'body',
|
|
|
|
margin: 0,
|
|
padding: '40px 20px',
|
|
fontFamily: "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif",
|
|
background: '#f3f4f6',
|
|
})
|
|
|
|
const Container = define('Container', {
|
|
maxWidth: 1200,
|
|
margin: '0 auto'
|
|
})
|
|
|
|
export const Header = define('Header', {
|
|
base: 'h1',
|
|
|
|
marginBottom: 40,
|
|
color: '#111827'
|
|
})
|
|
|
|
export const ExampleSection = define('ExampleSection', {
|
|
marginBottom: 40,
|
|
|
|
parts: {
|
|
Header: {
|
|
base: 'h2',
|
|
|
|
marginBottom: 16,
|
|
color: '#374151',
|
|
fontSize: 18
|
|
}
|
|
},
|
|
render({ props, parts: { Root, Header } }) {
|
|
return (
|
|
<Root>
|
|
<Header>{props.title}</Header>
|
|
{props.children}
|
|
</Root>
|
|
)
|
|
}
|
|
})
|
|
|
|
export const Layout = define({
|
|
render({ props }) {
|
|
return (
|
|
<html>
|
|
<head>
|
|
<meta charset="UTF-8" />
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
<title>{props.title}</title>
|
|
<Styles />
|
|
</head>
|
|
<Body>
|
|
<Container>
|
|
<Header>{props.title}</Header>
|
|
{props.children}
|
|
</Container>
|
|
</Body>
|
|
</html>
|
|
)
|
|
}
|
|
})
|