How to use the theme-ui.useThemeUI function in theme-ui

To help you get started, we’ve selected a few theme-ui examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github system-ui / theme-ui / packages / gatsby-plugin-theme-editor / src / edit.js View on Github external
export default props => {
  const context = useThemeUI()
  const [status, setStatus] = useState()

  const save = async e => {
    e.preventDefault()
    setStatus('saving')
    const theme = JSON.stringify(context.theme, null, 2)
    const res = await ky.post('/___theme', {
      json: {
        theme,
      },
    })
    if (!res.ok) setStatus('error')
    else setStatus(null)
    // const text = await res.text()
  }
github system-ui / theme-ui / packages / editor / src / ColorPalette.js View on Github external
export default props => {
  const context = useThemeUI()
  const mode = context.colorMode

  const onChange = key => val => {
    let next = {}
    if (mode && mode !== context.theme.initialColorMode) {
      next = {
        colors: {
          modes: {
            [mode]: {
              [key]: val.hex,
            },
          },
        },
      }
    } else {
      next = {
github system-ui / theme-ui / packages / match-media / src / index.js View on Github external
export const useBreakpointIndex = () => {
  const context = useThemeUI()
  const breakpoints =
    (context.theme && context.theme.breakpoints) || defaultBreakpoints

  const getIndex = useCallback(
    () =>
      breakpoints.filter(
        breakpoint =>
          window.matchMedia(`screen and (min-width: ${breakpoint})`).matches
      ).length,
    [breakpoints]
  )

  const [value, setValue] = useState(getIndex)

  useEffect(() => {
    const onResize = () => {
github doczjs / docz / core / docz-components / src / utils / theme.ts View on Github external
export const usePrismTheme = () => {
  const themeUI = useThemeUI();
  const prismTheme = get(themeUI.theme, 'prismTheme');
  const colorMode: string = get(themeUI, 'colorMode', 'light');
  const themeToUse = defaultTo(
    prismTheme,
    get(
      themeUI.theme,
      `prism.${colorMode}`,
      get(getTheme(), `prism.${colorMode}`)
    )
  );

  return themeToUse;
};
github pomber / code-surfer / packs / themes / src / styles.tsx View on Github external
function StylesProvider({
  theme = {},
  children
}: {
  theme?: CodeSurferTheme;
  children: React.ReactNode;
}) {
  const outer = useThemeUI().theme || {};

  const base = {
    ...baseTheme,
    ...outer,
    styles: {
      ...baseTheme.styles,
      ...outer.styles
    }
  };

  return (
    
      {children}
    
  );
}
github pomber / code-surfer / packs / themes / src / styles.tsx View on Github external
function useStyles(): CodeSurferStyles {
  const { theme } = useThemeUI();
  return (theme as any).styles.CodeSurfer;
}
github pomber / code-surfer / packs / code-surfer / src / presenter.tsx View on Github external
function MobilePresenter({
  allNotes,
  noteIndex,
  children,
  windowWidth,
  previous,
  next,
  slides,
  index
}) {
  const ratio = 16 / 9;
  const deckHeight = windowWidth / ratio;
  const windowHeight = window.innerHeight;
  const separatorHeight = 6;
  const notesHeight = windowHeight - deckHeight - separatorHeight;
  const { colors } = useThemeUI();

  const progress = (100 * (index + 1)) / slides.length;
  return (
    <div style="{{">
      </div>
github system-ui / theme-ui / packages / editor / src / context.js View on Github external
export const useEditor = () => {
  const themeui = useThemeUI()
  const editor = useContext(EditorContext)
  return editor || themeui
}