Files
react/components/css-baseline/css-baseline.tsx
witt 6da0509316 release 2.1.0 (#451)
* feat: optimize fonts rendering on windows (#385)

* feat(styles): set Inter to highest font

* docs(fonts): add guide for fonts rendering on windows

* test: udpate snapshots

* chore: release v2.1.0-canary.0

* feat(table): add update row action to Table (#378)

* feat: add update to Table's actions. add test and doc

fix(table): fix comments

* feat(table): improve type for table actions

chore: update docs

chore: remove unused types

chore(table): improve docs

Co-authored-by: William Castandet <williamcastandet@williams-air.home>
Co-authored-by: unix <unix.bio@gmail.com>

* refactor(use-theme): move use-theme to the top directory (#397)

* refactor(use-theme): move use-theme to the top directory

* chore(jest): ignore use-theme of forwarding

* chore: release v2.1.0-canary.1

* feat(select): add clearable option to select multiple with test and english doc (#396)

* docs: add clearable option to select multiple with test and english doc

* fix: fix types for onClear

* fix: fix import path for use-theme

add more test for coverage

* docs(select): add chinese document

Co-authored-by: unix <unix.bio@gmail.com>

* chore: release v2.1.0-canary.2

* fix(tabs): scrollable (#404)

docs(tabs): scroll behavior

* feat(textarea): resize prop (#416)

* feat: add resize prop to textarea

* docs: add resize prop for textarea

* docs(textarea): improve docs and attributes for cn

* test(textarea): update snapshots

Co-authored-by: unix <unix.bio@gmail.com>

* fix(types): replace path aliases in type files (#432)

* fix(types): replace path aliases in type files

* chore(lint): upgrade eslint and optimize code style

* chore: fix type error for context handler

* test: update snapshots

* fix: use ttsc to identify aliases in type paths

* feat(hooks): add a tool hooks for react context (#439)

* feat(hooks): add a tool hooks for react context

* chore: move use-context-state to internal tools

style: fix lint warning

* chore: simplify the structure of the catalog

* refactor(themes): refactor theme module to keep multiple themes (#440)

* refactor(themes): refactor theme module to keep multiple themes

* chore: migrate APIs to be compatible with new theme system

* test: update snapshots

* chore: migrate the path of the theme module

* feat(themes): append static methods of themes

* chore: hide custom theme when no custom content in the context

* chore: manually add flush to preload styles in html

* docs(themes): update to fit the new theme system

* chore: release v2.1.0-canary.3 (#450)

* docs: add link to GH discussions

* chore: upgrade deps

* chore: update code style for prettier

* chore: release v2.1.0-canary.3

* chore(deps): upgrade babel

* chore: replace enzyme adapter with community repo to fit react.17

* test: updatee snapshots for auto typesetting

* test(config): ignore unexported parts of the tools

Co-authored-by: William <wcastand@gmail.com>
Co-authored-by: William Castandet <williamcastandet@williams-air.home>
Co-authored-by: Vaibhav Acharya <vaibhavacharya111@gmail.com>
Co-authored-by: Paul van Dyk <39598117+PaulPCIO@users.noreply.github.com>
2021-02-14 15:58:52 +08:00

314 lines
6.8 KiB
TypeScript
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

import React from 'react'
import useTheme from '../use-theme'
import flush from 'styled-jsx/server'
import flushToReact from 'styled-jsx/server'
const CssBaseline: React.FC<React.PropsWithChildren<unknown>> = ({ children }) => {
const theme = useTheme()
return (
<>
{children}
<style global jsx>{`
html,
body {
background-color: ${theme.palette.background};
color: ${theme.palette.foreground};
}
html {
font-size: 16px;
--geist-icons-background: ${theme.palette.background};
}
body {
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-rendering: optimizeLegibility;
font-size: 1rem;
line-height: 1.5;
margin: 0;
padding: 0;
min-height: 100%;
position: relative;
overflow-x: hidden;
font-family: ${theme.font.sans};
}
#__next {
overflow-x: hidden;
}
*,
*:before,
*:after {
box-sizing: inherit;
text-rendering: geometricPrecision;
-webkit-tap-highlight-color: transparent;
}
p,
small {
font-weight: 400;
color: inherit;
letter-spacing: -0.005625rem;
font-family: ${theme.font.sans};
}
p {
margin: 1rem 0;
font-size: 1em;
line-height: 1.625em;
}
small {
margin: 0;
line-height: 1.5;
font-size: 0.875rem;
}
b {
font-weight: 600;
}
span {
font-size: inherit;
color: inherit;
font-weight: inherit;
}
img {
max-width: 100%;
}
a {
cursor: pointer;
font-size: inherit;
-webkit-touch-callout: none;
-webkit-tap-highlight-color: rgba(0, 0, 0, 0);
-webkit-box-align: center;
align-items: center;
color: ${theme.palette.link};
text-decoration: ${theme.expressiveness.linkStyle};
}
a:hover {
text-decoration: ${theme.expressiveness.linkHoverStyle};
}
ul,
ol {
padding: 0;
list-style-type: none;
margin: ${theme.layout.gapHalf} ${theme.layout.gapHalf} ${theme.layout.gapHalf}
${theme.layout.gap};
color: ${theme.palette.foreground};
}
ol {
list-style-type: decimal;
}
li {
margin-bottom: 0.625rem;
font-size: 1em;
line-height: 1.625em;
}
ul li:before {
content: '';
display: inline-block;
color: ${theme.palette.accents_4};
position: absolute;
margin-left: -0.9375rem;
}
h1,
h2,
h3,
h4,
h5,
h6 {
color: inherit;
margin: 0 0 0.625rem 0;
}
h1 {
font-size: 3rem;
letter-spacing: -0.066875rem;
line-height: 1.5;
font-weight: 700;
}
h2 {
font-size: 2.25rem;
letter-spacing: -0.020625rem;
font-weight: 600;
}
h3 {
font-size: 1.5rem;
letter-spacing: -0.029375rem;
font-weight: 600;
}
h4 {
font-size: 1.25rem;
letter-spacing: -0.020625rem;
font-weight: 600;
}
h5 {
font-size: 1rem;
letter-spacing: -0.01125rem;
font-weight: 600;
}
h6 {
font-size: 0.875rem;
letter-spacing: -0.005625rem;
font-weight: 600;
}
button,
input,
select,
textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
color: inherit;
margin: 0;
}
button:focus,
input:focus,
select:focus,
textarea:focus {
outline: none;
}
code {
color: ${theme.palette.code};
font-family: ${theme.font.mono};
font-size: 0.9em;
white-space: pre-wrap;
}
code:before,
code:after {
content: '\`';
}
pre {
border: 1px solid ${theme.palette.accents_2};
border-radius: ${theme.layout.radius};
padding: calc(${theme.layout.gap} * 0.75) ${theme.layout.gap};
margin: ${theme.layout.gap} 0;
font-family: ${theme.font.mono};
white-space: pre;
overflow: auto;
line-height: 1.5;
text-align: left;
font-size: 0.875rem;
-webkit-overflow-scrolling: touch;
}
pre code {
color: ${theme.palette.foreground};
font-size: 0.8125rem;
line-height: 1.25rem;
white-space: pre;
}
pre code:before,
pre code:after {
display: none;
}
pre :global(p) {
margin: 0;
}
pre::-webkit-scrollbar {
display: none;
width: 0;
height: 0;
background: transparent;
}
hr {
border-color: ${theme.palette.accents_2};
}
details {
background-color: ${theme.palette.accents_1};
border: none;
}
details:focus,
details:hover,
details:active {
outline: none;
}
summary {
cursor: pointer;
user-select: none;
list-style: none;
outline: none;
}
summary::-webkit-details-marker,
summary::before {
display: none;
}
summary::-moz-list-bullet {
font-size: 0;
}
summary:focus,
summary:hover,
summary:active {
outline: none;
list-style: none;
}
blockquote {
padding: calc(0.667 * ${theme.layout.gap}) ${theme.layout.gap};
color: ${theme.palette.accents_5};
background-color: ${theme.palette.accents_1};
border-radius: ${theme.layout.radius};
margin: 1.5rem 0;
border: 1px solid ${theme.palette.border};
}
blockquote :global(*:first-child) {
margin-top: 0;
}
blockquote :global(*:last-child) {
margin-bottom: 0;
}
::selection {
background-color: ${theme.palette.selection};
color: ${theme.palette.foreground};
}
`}</style>
</>
)
}
type MemoCssBaselineComponent<P = {}> = React.NamedExoticComponent<P> & {
flush: typeof flushToReact
}
const MemoCssBaseline = React.memo(CssBaseline) as MemoCssBaselineComponent<
React.PropsWithChildren<unknown>
>
MemoCssBaseline.flush = flush
export default MemoCssBaseline