@chassis-ui/docs 0.1.9 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,98 +1,105 @@
1
1
  # @chassis-ui/docs
2
2
 
3
- Shared Astro components and layouts for Chassis documentation sites.
3
+ > Shared Astro layouts, components, and utilities for Chassis documentation sites.
4
+
5
+ [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT) [![Version: 0.2.0](https://img.shields.io/badge/Version-0.2.0-blue.svg)](https://www.npmjs.com/package/@chassis-ui/docs) [![npm](https://img.shields.io/npm/v/@chassis-ui/docs.svg)](https://www.npmjs.com/package/@chassis-ui/docs)
4
6
 
5
7
  ## Overview
6
8
 
7
- This package provides reusable Astro components, layouts, and utilities specifically designed for building documentation websites within the Chassis UI ecosystem. It includes common documentation patterns, styling helpers, and content processing utilities.
9
+ `@chassis-ui/docs` powers every documentation site in the Chassis ecosystem — the main `chassis-ui.com` website and the per-package docs for `chassis-css`, `chassis-tokens`, `chassis-icons`, `chassis-figma`, and `chassis-assets`. It ships pre-built layouts, navigation components, content-processing utilities, and SCSS helpers so each site stays consistent without duplicating code.
10
+
11
+ > [!NOTE] This package is developed inside the [`chassis-website`](https://github.com/chassis-ui/website) monorepo at `packages/docs/` and published to npm. Source, issues, and pull requests live in that repository.
8
12
 
9
13
  ## Installation
10
14
 
11
- ```bash
12
- npm install @chassis-ui/docs
15
+ ```sh
16
+ pnpm add @chassis-ui/docs
13
17
  ```
14
18
 
15
- or with pnpm:
19
+ or:
16
20
 
17
- ```bash
18
- pnpm add @chassis-ui/docs
21
+ ```sh
22
+ npm install @chassis-ui/docs
19
23
  ```
20
24
 
21
- ## Peer Dependencies
25
+ ### Peer Dependencies
22
26
 
23
- This package requires the following peer dependencies:
27
+ ```json
28
+ {
29
+ "astro": "^5.0.0"
30
+ }
31
+ ```
24
32
 
25
- - `@chassis-ui/css`: Chassis CSS framework
26
- - `@chassis-ui/icons`: Chassis icon library
27
- - `@chassis-ui/tokens`: Chassis design tokens
28
- - `astro`: ^4.0.0 || ^5.0.0
33
+ In practice, sites also install the rest of the Chassis stack — `@chassis-ui/css`, `@chassis-ui/tokens`, `@chassis-ui/icons` — to render the layouts and styles correctly.
29
34
 
30
35
  ## Usage
31
36
 
32
- ### Importing Components
33
-
34
- ```typescript
35
- // Import layouts
36
- import Layout from '@chassis-ui/docs/layouts/Layout.astro'
37
+ ```astro
38
+ ---
39
+ import BaseLayout from '@chassis-ui/docs/layouts/BaseLayout.astro'
37
40
  import DocsLayout from '@chassis-ui/docs/layouts/DocsLayout.astro'
41
+ import SingleLayout from '@chassis-ui/docs/layouts/SingleLayout.astro'
38
42
 
39
- // Import components
40
- import CodeBlock from '@chassis-ui/docs/components/CodeBlock.astro'
41
- import Callout from '@chassis-ui/docs/components/Callout.astro'
43
+ import TableOfContents from '@chassis-ui/docs/components/TableOfContents.astro'
44
+ import ThemeToggler from '@chassis-ui/docs/components/ThemeToggler.astro'
42
45
 
43
- // Import utilities
44
- import { generateTOC } from '@chassis-ui/docs'
45
- import { processImage } from '@chassis-ui/docs'
46
- ```
46
+ import { generateTOC, processImage } from '@chassis-ui/docs'
47
+ ---
47
48
 
48
- ### Available Exports
49
+ <SingleLayout title="About" description="…">
50
+ <slot />
51
+ </SingleLayout>
52
+ ```
49
53
 
50
- This package exports:
54
+ ## Exports
51
55
 
52
- - **Layouts**: Pre-built Astro layouts for documentation pages
53
- - **Components**: Reusable documentation components (code blocks, callouts, navigation, etc.)
54
- - **Shortcodes**: MDX-compatible shortcode components
55
- - **Libraries**: Utility functions for content processing, TOC generation, and more
56
- - **Styles**: SCSS utilities and mixins
57
- - **Scripts**: Client-side JavaScript utilities
56
+ | Subpath | Contents |
57
+ | --- | --- |
58
+ | `@chassis-ui/docs` | Library functions: `chassis`, `image`, `layout`, `rehype`, `toc`, `utils` |
59
+ | `@chassis-ui/docs/layouts/*` | `BaseLayout`, `DocsLayout`, `RedirectLayout`, `SingleLayout` |
60
+ | `@chassis-ui/docs/components/*` | `DocsSidebar`, `FeatureCard`, `NavLink`, `ResponsiveImage`, `TableOfContents`, `ThemeToggler` |
61
+ | `@chassis-ui/docs/shortcodes/*` | MDX shortcode components |
62
+ | `@chassis-ui/docs/libs/*` | Direct access to individual library modules |
63
+ | `@chassis-ui/docs/js/*` | Client-side scripts |
64
+ | `@chassis-ui/docs/scss/*` | SCSS utilities and partials |
58
65
 
59
- ### Directory Structure
66
+ ### Source Layout
60
67
 
61
68
  ```
62
69
  src/
63
- ├── components/ # Astro components
64
- │ └── shortcodes/ # MDX shortcode components
65
- ├── layouts/ # Page layouts
66
- ├── libs/ # Utility libraries
67
- ├── js/ # Client-side scripts
68
- └── scss/ # Styling utilities
70
+ ├── components/ # Astro components (+ shortcodes/)
71
+ ├── layouts/ # Page layouts (+ head/, header/, footer/)
72
+ ├── libs/ # Utility libraries
73
+ ├── js/ # Client-side scripts
74
+ └── scss/ # Styling utilities
69
75
  ```
70
76
 
71
- ## Features
77
+ ## Chassis Ecosystem
72
78
 
73
- - **Content Processing**: Utilities for processing markdown and MDX content
74
- - **Table of Contents**: Automatic TOC generation from headings
75
- - **Image Optimization**: Helper functions for responsive images
76
- - **Syntax Highlighting**: Code block components with syntax highlighting
77
- - **Navigation**: Responsive documentation navigation components
78
- - **Search Integration**: Ready-to-use search components
79
- - **Accessibility**: WCAG-compliant components with proper ARIA attributes
79
+ This package is part of the Chassis Design System's multi-repository architecture:
80
80
 
81
- ## Development
81
+ | Project | Description |
82
+ | --- | --- |
83
+ | [chassis-website](https://github.com/chassis-ui/website) | **Main website and home of `@chassis-ui/docs` (this package)** |
84
+ | [chassis-css](https://github.com/chassis-ui/css) | CSS framework and component library |
85
+ | [chassis-tokens](https://github.com/chassis-ui/tokens) | Design token generation and management |
86
+ | [chassis-icons](https://github.com/chassis-ui/icons) | Icon library and build toolkit |
87
+ | [chassis-assets](https://github.com/chassis-ui/assets) | Multi-platform asset management |
88
+ | [chassis-figma](https://github.com/chassis-ui/figma) | Figma component documentation |
82
89
 
83
- This package is part of the Chassis UI monorepo. For development instructions, see the main repository documentation.
90
+ All documentation sites in the ecosystem share this package for consistent layouts, components, and styling.
84
91
 
85
- ## License
92
+ ## Contributing
86
93
 
87
- MIT © [Chassis UI](https://github.com/chassis-ui)
94
+ Issues and pull requests are welcome — please file them in [`chassis-ui/website`](https://github.com/chassis-ui/website). For larger changes, open an issue first so we can agree on the approach before you write the code.
88
95
 
89
- ## Contributing
96
+ ## License
90
97
 
91
- Contributions are welcome! Please read the contributing guidelines in the main repository.
98
+ MIT © [Chassis UI](https://github.com/chassis-ui)
92
99
 
93
100
  ## Links
94
101
 
95
- - [Documentation](https://chassis-ui.com/docs)
96
- - [GitHub Repository](https://github.com/chassis-ui/website)
97
- - [Issue Tracker](https://github.com/chassis-ui/website/issues)
98
- - [Chassis UI Website](https://chassis-ui.com)
102
+ - [chassis-ui.com](https://chassis-ui.com)
103
+ - [npm package](https://www.npmjs.com/package/@chassis-ui/docs)
104
+ - [Source repository](https://github.com/chassis-ui/website/tree/main/packages/docs)
105
+ - [Issue tracker](https://github.com/chassis-ui/website/issues)
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chassis-ui/docs",
3
3
  "description": "Shared Astro components and layouts for Chassis documentation sites.",
4
- "version": "0.1.9",
4
+ "version": "0.2.0",
5
5
  "type": "module",
6
6
  "repository": {
7
7
  "type": "git",
@@ -44,20 +44,20 @@
44
44
  "astro": "^5.0.0"
45
45
  },
46
46
  "devDependencies": {
47
- "@docsearch/css": "^3.9.0",
48
- "@docsearch/js": "^3.9.0",
47
+ "@docsearch/css": "^4.6.2",
48
+ "@docsearch/js": "^4.6.2",
49
49
  "@types/hast": "^3.0.4",
50
50
  "@types/mdast": "^4.0.4",
51
- "astro": "^5.13.9",
51
+ "astro": "^6.1.9",
52
52
  "github-slugger": "^2.0.0",
53
53
  "image-size": "^2.0.2",
54
- "mdast-util-from-markdown": "^2.0.2",
54
+ "mdast-util-from-markdown": "^2.0.3",
55
55
  "mdast-util-mdx-jsx": "^3.2.0",
56
56
  "mdast-util-to-string": "^4.0.0",
57
57
  "remark": "^15.0.1",
58
58
  "remark-html": "^16.0.1",
59
59
  "unified": "^11.0.5",
60
- "unist-util-visit": "^5.0.0",
61
- "zod": "^4.1.11"
60
+ "unist-util-visit": "^5.1.0",
61
+ "zod": "^4.3.6"
62
62
  }
63
63
  }
@@ -26,7 +26,7 @@ const hasContent = Astro.slots.has('default')
26
26
  // Build class strings
27
27
  const cardClasses = [
28
28
  'feature-item bg-even d-flex flex-column rounded-large',
29
- 'p-medium p-large-xlarge gap-medium gap-medium-xlarge',
29
+ 'p-medium large:p-xlarge gap-medium medium:gap-xlarge',
30
30
  horizontal ? '' : 'h-100',
31
31
  classes
32
32
  ]
@@ -35,8 +35,8 @@ const cardClasses = [
35
35
 
36
36
  const headerClasses = [
37
37
  'feature-header d-flex',
38
- 'gap-medium gap-medium-xlarge',
39
- horizontal ? 'flex-column flex-medium-row' : 'flex-column'
38
+ 'gap-medium medium:gap-xlarge',
39
+ horizontal ? 'flex-column medium:flex-row' : 'flex-column'
40
40
  ].join(' ')
41
41
  ---
42
42
 
@@ -45,17 +45,17 @@ const headerClasses = [
45
45
  {
46
46
  icon && (
47
47
  <div class="feature-thumb">
48
- <svg class="icon feature-icon icon-3xlarge icon-medium-4xlarge" aria-hidden="true">
48
+ <svg class="icon feature-icon icon-3xlarge medium:icon-4xlarge" aria-hidden="true">
49
49
  <use href={`#${icon}`} />
50
50
  </svg>
51
51
  </div>
52
52
  )
53
53
  }
54
54
  <div>
55
- <h3 class="feature-title font-large font-medium-xlarge mb-3xsmall mb-medium-2xsmall">
55
+ <h3 class="feature-title font-large medium:font-xlarge mb-3xsmall medium:mb-2xsmall">
56
56
  <slot name="title" />
57
57
  </h3>
58
- <p class="feature-body font-medium-large mb-0">
58
+ <p class="feature-body medium:font-large mb-0">
59
59
  <slot name="body" />
60
60
  </p>
61
61
  </div>
@@ -21,7 +21,7 @@ interface Props {
21
21
  const { active, class: className, ...props } = Astro.props
22
22
  ---
23
23
 
24
- <li class="nav-item col-6 col-large-auto">
24
+ <li class="nav-item col-6 large:col-auto">
25
25
  <a
26
26
  aria-current={active ? true : undefined}
27
27
  class:list={['nav-link', className, { active }]}
@@ -26,7 +26,7 @@ const { layout } = Astro.props
26
26
  >
27
27
  <svg class="icon theme-icon-active" aria-hidden="true"><use href="#circle-half-solid"></use></svg>
28
28
  <span
29
- class=`${layout === 'examples' ? 'visually-hidden' : 'd-large-none ms-xsmall'}`
29
+ class=`${layout === 'examples' ? 'visually-hidden' : 'large:d-none ms-xsmall'}`
30
30
  id="cxd-theme-text">Toggle theme</span
31
31
  >
32
32
  </button>
@@ -0,0 +1,31 @@
1
+ ---
2
+ /**
3
+ * Blockquote
4
+ *
5
+ * Render a blockquote with optional attribution.
6
+ */
7
+
8
+ interface Props {
9
+ /** Attribution text or HTML for the quote */
10
+ attr?: String
11
+ }
12
+
13
+ const { attr } = Astro.props
14
+ ---
15
+
16
+ {
17
+ attr ? (
18
+ <figure>
19
+ <blockquote class="blockquote">
20
+ <slot />
21
+ </blockquote>
22
+ <figcaption class="attribution">
23
+ <Fragment set:html={attr} />
24
+ </figcaption>
25
+ </figure>
26
+ ) : (
27
+ <blockquote class="blockquote">
28
+ <slot />
29
+ </blockquote>
30
+ )
31
+ }
@@ -0,0 +1,18 @@
1
+ ---
2
+ /*
3
+ * Outputs badge to identify features that are only available in CSS and not in Figma
4
+ */
5
+
6
+ interface Props {
7
+ tooltip?: string
8
+ }
9
+
10
+ const { tooltip = 'This feature is only available in CSS and not in Figma components.' } =
11
+ Astro.props
12
+ ---
13
+
14
+ <span
15
+ class="badge large info smooth mb-medium rounded-medium"
16
+ data-cx-toggle="tooltip"
17
+ title={tooltip}>CSS Only</span
18
+ >
@@ -0,0 +1,15 @@
1
+ ---
2
+ /*
3
+ * Outputs badge to identify the version something was deprecated
4
+ */
5
+
6
+ interface Props {
7
+ version: string
8
+ }
9
+
10
+ const { version } = Astro.props
11
+ ---
12
+
13
+ <span class="badge large warning smooth mb-medium rounded-medium">
14
+ Deprecated in v{version}
15
+ </span>
@@ -0,0 +1,21 @@
1
+ ---
2
+ /*
3
+ * Outputs badge to identify features that are only available in CSS and not in Figma
4
+ */
5
+
6
+ interface Props {
7
+ tooltip?: string
8
+ plural?: boolean
9
+ }
10
+
11
+ const { tooltip, plural } = Astro.props
12
+ const tooltipText =
13
+ tooltip ??
14
+ `This variant${plural ? 's' : ''} exist${plural ? '' : 's'} in the Figma component library with bound design tokens.`
15
+ ---
16
+
17
+ <span
18
+ class="badge large primary smooth mb-medium rounded-medium"
19
+ data-cx-toggle="tooltip"
20
+ title={tooltipText}>In Figma</span
21
+ >
@@ -28,24 +28,34 @@ type Props = {
28
28
  // any override.
29
29
  main?: LayoutOverridesHTMLAttributes<'main'>
30
30
  }
31
- // A string containing the robots meta tag content. If not set, the tag will not be rendered.
32
- robots?: string
33
31
  // An override for the page title. If not defined, the title will either be the content of the `title` frontmatter
34
32
  // property when rendering a markdown page or default back to the one defined in the `config.yml` file.
35
33
  title?: string
34
+ // An override for the page description. If not defined, the description will either be the content of the
35
+ // `description` frontmatter property when rendering a markdown page or default back to the one defined in
36
+ // the `config.yml` file.
37
+ description?: string
38
+ // A string containing the robots meta tag content. If not set, the tag will not be rendered.
39
+ robots?: string
36
40
  } & MarkdownProps
37
41
 
38
42
  // The following props are automatically set by Astro (if defined) based on the markdown frontmatter when rendering a
39
43
  // markdown page. They can be accessed through the `Astro.props.frontmatter` object but note that they won't be set when
40
44
  // not rendering a markdown page.
41
- type MarkdownProps = { frontmatter?: Partial<CollectionEntry<'docs' | 'blog'>['data']> }
45
+ type MarkdownProps = { frontmatter?: Partial<CollectionEntry<'docs'>['data']> }
46
+
47
+ // This type is used to define the shape of the `extra_js` frontmatter property which allows adding extra JavaScript
48
+ // files to a page by passing an array of objects containing the `src` and `async` properties.
49
+ type ExtraJS = NonNullable<CollectionEntry<'docs'>['data']['extra_js']>[number]
42
50
 
43
51
  const { frontmatter, layout, overrides, robots } = Astro.props
44
52
 
45
53
  const title = Astro.props.title ?? frontmatter?.title ?? getConfig().title
46
- const description = frontmatter?.description
47
- ? stripMarkdown(frontmatter.description)
48
- : getConfig().description
54
+ const description = Astro.props.description
55
+ ? stripMarkdown(Astro.props.description)
56
+ : frontmatter?.description
57
+ ? stripMarkdown(frontmatter.description)
58
+ : getConfig().description
49
59
  const thumbnail = frontmatter?.thumbnail
50
60
  ? `${frontmatter.thumbnail}`
51
61
  : 'static/images/social-image.png'
@@ -87,7 +97,9 @@ const mainProps = overrides?.main ?? {}
87
97
 
88
98
  {
89
99
  frontmatter?.extra_js &&
90
- frontmatter.extra_js.map((js) => <script is:inline async={js.async} src={js.src} />)
100
+ frontmatter.extra_js.map((js: ExtraJS) => (
101
+ <script is:inline async={js.async} src={js.src} />
102
+ ))
91
103
  }
92
104
 
93
105
  {
@@ -26,6 +26,8 @@ interface Props {
26
26
 
27
27
  const { frontmatter, headings, id } = Astro.props
28
28
 
29
+ type DocSection = NonNullable<typeof frontmatter.sections>[number]
30
+
29
31
  // Extract the directory/section from the ID (format: "directory/filename.mdx")
30
32
  const parentDirectory = id.includes('/') ? id.split('/')[0] : ''
31
33
 
@@ -40,10 +42,11 @@ if (frontmatter.toc) {
40
42
  ---
41
43
 
42
44
  <BaseLayout {...Astro.props} layout="docs" overrides={{ body: bodyProps }}>
43
- <div slot="main" class="container-fluid cxd-gutter cxd-layout">
45
+ <div slot="main" class="container fluid cxd-gutter cxd-layout">
44
46
  <aside class="cxd-sidebar">
45
47
  <div
46
- class="offcanvas-large offcanvas-start"
48
+ class="large:offcanvas offcanvas-start"
49
+ role="dialog"
47
50
  tabindex="-1"
48
51
  id="cxdSidebar"
49
52
  aria-labelledby="cxdSidebarOffcanvasLabel"
@@ -70,9 +73,9 @@ if (frontmatter.toc) {
70
73
  <div class="cxd-intro">
71
74
  <slot name="intro">
72
75
  <div
73
- class="d-medium-flex flex-medium-row-reverse justify-content-between align-items-start"
76
+ class="medium:d-flex medium:flex-row-reverse justify-content-between align-items-start"
74
77
  >
75
- <div class="mb-medium mb-medium-0 d-flex text-nowrap">
78
+ <div class="mb-medium medium:mb-0 d-flex text-nowrap">
76
79
  {
77
80
  // This is needed because we want to show the badge if show_badge isn't present or is set to false
78
81
  frontmatter.added &&
@@ -110,7 +113,7 @@ if (frontmatter.toc) {
110
113
  frontmatter.toc && headings && (
111
114
  <div class="cxd-toc">
112
115
  <button
113
- class="button default mb-large text-decoration-none cxd-toc-toggle d-medium-none"
116
+ class="button default mb-large text-decoration-none cxd-toc-toggle medium:d-none"
114
117
  type="button"
115
118
  data-cx-toggle="collapse"
116
119
  data-cx-target="#tocContents"
@@ -122,8 +125,8 @@ if (frontmatter.toc) {
122
125
  <use xlink:href="#chevron-sort-solid" />
123
126
  </svg>
124
127
  </button>
125
- <strong class="d-none d-medium-block h6 my-xsmall">On this page</strong>
126
- <hr class="d-none d-medium-block my-xsmall" />
128
+ <strong class="d-none medium:d-block h6 my-xsmall">On this page</strong>
129
+ <hr class="d-none medium:d-block my-xsmall" />
127
130
  <div class="collapse cxd-toc-collapse" id="tocContents">
128
131
  <nav id="TableOfContents">
129
132
  <slot name="toc">
@@ -139,8 +142,8 @@ if (frontmatter.toc) {
139
142
  {
140
143
  frontmatter.sections && (
141
144
  <div class="row g-xlarge">
142
- {frontmatter.sections.map((section) => (
143
- <div class="col-medium-6">
145
+ {frontmatter.sections.map((section: DocSection) => (
146
+ <div class="medium:col-6">
144
147
  <a
145
148
  class="d-block text-decoration-none"
146
149
  href={getChassisDocsPath(
@@ -6,36 +6,33 @@
6
6
  */
7
7
 
8
8
  import BaseLayout from './BaseLayout.astro'
9
+ import type { LayoutOverridesHTMLAttributes } from '../libs/layout'
9
10
 
10
11
  interface Props {
11
- /** Page description */
12
- description: string
13
12
  /** Page title */
14
13
  title: string
14
+ /** Page description */
15
+ description: string
15
16
  }
16
17
 
17
18
  const { description, title } = Astro.props
19
+
20
+ const mainProps: LayoutOverridesHTMLAttributes<'main'> = {}
21
+ mainProps['class'] = 'min-vh-100'
18
22
  ---
19
23
 
20
- <BaseLayout {...Astro.props} layout="single">
21
- <Fragment slot="main">
22
- <header class="py-xlarge border-bottom">
23
- <div class="container-2xlarge cxd-gutter pt-medium-1 pb-medium-4">
24
- <div class="row">
25
- <div class="col-xlarge-8">
26
- <h1 class="cxd-title mt-0">{title}</h1>
27
- <p class="cxd-subtitle">{description}</p>
28
- <slot name="header-content" />
29
- </div>
24
+ <BaseLayout {...Astro.props} layout="single" overrides={{ main: mainProps }}>
25
+ <header class="py-xlarge medium:py-3xlarge border-bottom border-subtle">
26
+ <div class="container 2xlarge">
27
+ <div class="row">
28
+ <div class="col large:col-10 2xlarge:col-8">
29
+ <h1 class="mt-0">{title}</h1>
30
+ <p class="font-lead">{description}</p>
31
+ <slot name="header-content" />
30
32
  </div>
31
33
  </div>
32
- </header>
34
+ </div>
35
+ </header>
33
36
 
34
- <main class="cxd-content order-1 py-xlarge" id="content">
35
- <div class="container-2xlarge cxd-gutter">
36
- <slot />
37
- <slot name="main-content" />
38
- </div>
39
- </main>
40
- </Fragment>
37
+ <slot />
41
38
  </BaseLayout>
@@ -7,9 +7,9 @@
7
7
  ---
8
8
 
9
9
  <footer class="cxd-footer py-6xlarge">
10
- <div class="container-2xlarge fg-subtle">
10
+ <div class="container 2xlarge fg-subtle">
11
11
  <div class="row">
12
- <div class="col-medium-10 col-large-5 mb-medium">
12
+ <div class="medium:col-10 large:col-5 mb-medium">
13
13
  <a
14
14
  class="d-inline-flex align-items-center mb-xsmall text-body-emphasis text-decoration-none"
15
15
  href="/"
@@ -22,8 +22,8 @@
22
22
  and distribution of the software.
23
23
  </p>
24
24
  </div>
25
- <div class="col-small-4 col-large-2 offset-large-1 mb-medium">
26
- <h5>Docs</h5>
25
+ <div class="small:col-4 large:col-2 large:offset-1 mb-medium">
26
+ <p class="h6 mb-xsmall">Docs</p>
27
27
  <ul class="nav">
28
28
  <li><a href="/tokens">Design Tokens</a></li>
29
29
  <li><a href="/assets">Asset Distributor</a></li>
@@ -32,8 +32,8 @@
32
32
  <li><a href="/icons">Icon Generator</a></li>
33
33
  </ul>
34
34
  </div>
35
- <div class="col-small-4 col-large-2 mb-medium">
36
- <h5>Github</h5>
35
+ <div class="small:col-4 large:col-2 mb-medium">
36
+ <p class="h6 mb-xsmall">Github</p>
37
37
  <ul class="nav">
38
38
  <li><a href="https://github.com/chassis-ui/tokens">Chassis Tokens</a></li>
39
39
  <li><a href="https://github.com/chassis-ui/assets">Chassis Assets</a></li>
@@ -42,13 +42,14 @@
42
42
  <li><a href="https://github.com/chassis-ui/icons">Chassis Icons</a></li>
43
43
  </ul>
44
44
  </div>
45
- <div class="col-small-4 col-large-2 mb-medium">
46
- <h5>About</h5>
45
+ <div class="small:col-4 large:col-2 mb-medium">
46
+ <p class="h6 mb-xsmall">Project</p>
47
47
  <ul class="nav">
48
+ <li><a href="/about">About</a></li>
48
49
  <li><a href="/blog">Blog</a></li>
49
- <li><a href="https://x.com/chassis_ui">Chassis UI</a></li>
50
+ <li><a href="/examples">Examples</a></li>
50
51
  <li><a href="https://github.com/chassis-ui">Contribute</a></li>
51
- <li><a href="https://github.com/ozgurgunes">Developer</a></li>
52
+ <li><a href="https://x.com/chassis_ui">@chassis_ui on X</a></li>
52
53
  </ul>
53
54
  </div>
54
55
  </div>
@@ -17,11 +17,13 @@ const { layout } = Astro.props
17
17
  ---
18
18
 
19
19
  <script is:inline {...getChassisJsProps()}></script>
20
-
21
20
  <script src="../../js/search.js"></script>
22
-
21
+ <script>
22
+ const tooltipTriggerList = document.querySelectorAll('[data-cx-toggle="tooltip"]')
23
+ const tooltipList = [...tooltipTriggerList].map(
24
+ (tooltipTriggerEl) => new chassis.Tooltip(tooltipTriggerEl)
25
+ )
26
+ </script>
23
27
  {layout === 'docs' && <script src="../../js/sidebar.js" />}
24
-
25
28
  <script src="../../js/icon-loader.js"></script>
26
-
27
29
  <slot name="scripts" />