StyleContext

Usage

"use client";

import { StyleContext } from "@colonydb/anthill/StyleContext";
import { useContext } from "react";

export const ExampleComponent = ({ children }: Props) => {
  const styleContext = useContext(StyleContext);
  return (
    <div>
      color: {styleContext.color}
      <br />
      container: {styleContext.container}
      <br />
      spacing: {styleContext.spacing}
      <br />
      headingLevel: {styleContext.headingLevel}
    </div>
  );
};
"use client";

import type { StyleContextConfig } from "@colonydb/anthill";
import { useStyleContext } from "@colonydb/anthill/useStyleContext";
import { useMemo } from "react";

export const ExampleComponent = ({ children }: Props) => {
  const styleContextConfig = useMemo<StyleContextConfig>({
    container: (value) => value + 1,
    spacing: (value) => value + 1,
    headingLevel: (value) => value + 1,
  }, []);

  const { styleContext, styleContextClassName, StyleContextProvider } = useStyleContext(styleContextConfig);

  return (
    <div className={styleContextClassName}>
      <StyleContextProvider>
        container: {styleContext.container}
        <br />
        spacing: {styleContext.spacing}
        <br />
        headingLevel: {styleContext.headingLevel}
      </StyleContextProvider>
    </div>
  );
};

Playground

Configuration

Background
Color
Muted
Container
Spacing
Heading Level

Result

Heading
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Proin gravida hendrerit lectus a. Quisque id diam vel quam elementum pulvinar. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.