refactor(css): add prefix to component classes for consistency (#744)

* refactor(navbar): add hextra prefix to navbar and hamburger menu classes

- Updated CSS class names from `nav-container` to `hextra-nav-container` and `hamburger-menu` to `hextra-hamburger-menu` for improved clarity and consistency across the project.
- Adjusted related JavaScript and documentation to reflect the new class names.

* refactor(search): update class names for search components

- Renamed CSS classes from `search-wrapper`, `search-input`, `active`, `no-result`, `prefix`, `excerpt`, and `match` to `hextra-search-wrapper`, `hextra-search-input`, `hextra-search-active`, `hextra-search-no-result`, `hextra-search-prefix`, `hextra-search-excerpt`, and `hextra-search-match` for improved clarity and consistency.
- Updated JavaScript selectors to match the new class names, ensuring functionality remains intact.
- Adjusted HTML structure to reflect the new class naming convention.

* refactor(search): update search component class names for consistency

- Renamed existing search-related CSS classes to include the `hextra` prefix for improved clarity and consistency.
- Added optional nested classes for enhanced customization of the search UI, including titles, active states, and result snippets.
- Removed outdated breadcrumb section as no specific class is available.

* refactor(sidebar): rename sidebar classes for consistency

- Updated CSS and JavaScript to replace `sidebar-container` with `hextra-sidebar-container` and `sidebar-active-item` with `hextra-sidebar-active-item` for improved clarity and consistency across the project.
- Adjusted related documentation to reflect the new class names.

* refactor(language & theme): update class names for consistency

- Renamed language switcher and theme toggle classes to include the `hextra` prefix for improved clarity and consistency across the project.
- Updated related JavaScript selectors and documentation to reflect the new class names.

* refactor(css & html): rename classes for consistency and clarity

- Updated various CSS class names to include the `hextra` prefix, enhancing consistency across the project. This includes renaming classes such as `content` to `hextra-content`, `filename` to `hextra-code-filename`, and `steps` to `hextra-steps`.
- Adjusted related HTML and JavaScript to reflect the new class names, ensuring functionality and styling remain intact.
- Updated documentation to include the new class names for better clarity.

* refactor(language): update class names for language options

- Renamed the `language-options` class to `hextra-language-options` for consistency with the existing `hextra` prefix convention.
- Updated the corresponding HTML to reflect the new class name, ensuring clarity and uniformity across the project.

* refactor(css & html): rename classes for consistency and clarity

- Renamed CSS classes to include the `hextra` prefix, such as changing `subheading-anchor` to `hextra-subheading-anchor` and `footnotes` to `hextra-footnotes`, enhancing consistency across the project.
- Updated related HTML and documentation to reflect the new class names, ensuring clarity and uniformity.

* feat(typography): add styling for horizontal lines

- Introduced new styles for horizontal lines to enhance visual separation in content. The styles apply margin and border color adjustments, ensuring consistency with the overall design.

* feat(blog): add draft release announcement for Hextra v0.10.0

- Created a new markdown file for the draft release announcement of Hextra v0.10.0, including upgrade instructions and author details.
- The announcement is currently marked as a draft and may be updated before the official release.

* refactor(css & html): rename `hextra-content` class to `content` for consistency

- Updated the `hextra-content` class to simply `content` across various HTML files and CSS, enhancing clarity and consistency in the codebase.
- Adjusted the `package.json` script for the development server to include the `-F` flag for better functionality.

* refactor(typography & markdown): enhance table styling and markdown syntax

- Updated CSS for tables to improve styling, including adjustments to margins, borders, and text properties for better readability.
- Revised markdown documentation to standardize table formatting and improve clarity, including consistent syntax for headers and lists.
- Enhanced examples in the documentation to reflect the updated styling and ensure accurate representation of output.

* fix(blog): update text color for improved accessibility

- Modified the text color in the blog single layout to enhance readability in dark mode by adding a dark text color class.
- Ensured consistency in styling for better user experience across different themes.

* docs(blog): update draft release announcement for Hextra v0.10.0

- Revised the "What's New" section to include a TODO placeholder for future updates.
- Added a comprehensive migration guide detailing the CSS class prefix changes to enhance consistency and avoid conflicts.
- Updated the announcement to reflect the new class naming conventions for various components.

* chore: rebuild css
This commit is contained in:
Xin
2025-08-13 22:55:38 +08:00
committed by GitHub
parent 953042a0c0
commit 6823cc1fe8
30 changed files with 274 additions and 205 deletions

View File

@@ -0,0 +1,55 @@
---
title: "Hextra v0.10.0 is released"
date: 2025-08-14
authors:
- name: imfing
link: https://github.com/imfing
image: https://github.com/imfing.png
tags:
- Release
draft: true
---
<!--more-->
## What's New
TODO
To upgrade to v0.10.0, update your Hugo module:
```bash
hugo mod get -u github.com/imfing/hextra@v0.10.0
```
## Migration Guide
### CSS class prefix
This release includes a comprehensive CSS class naming refactor to improve consistency and avoid potential conflicts. Most Hextra components CSS classes now use the `hextra-` prefix.
| Area | Before | After |
| -------------------- | ---------------------------- | ------------------------------------------------- |
| Search (container) | `.search-wrapper` | `.hextra-search-wrapper` |
| Search (input) | `.search-input` | `.hextra-search-input` |
| Search (results) | `.search-results` | `.hextra-search-results` |
| Search (title) | `.search-wrapper .title` | `.hextra-search-wrapper .hextra-search-title` |
| Search (active item) | `.search-wrapper .active` | `.hextra-search-wrapper .hextra-search-active` |
| Search (no result) | `.search-wrapper .no-result` | `.hextra-search-wrapper .hextra-search-no-result` |
| Search (prefix) | `.search-wrapper .prefix` | `.hextra-search-wrapper .hextra-search-prefix` |
| Search (excerpt) | `.search-wrapper .excerpt` | `.hextra-search-wrapper .hextra-search-excerpt` |
| Search (match) | `.search-wrapper .match` | `.hextra-search-wrapper .hextra-search-match` |
| Navbar blur | `.nav-container-blur` | `.hextra-nav-container-blur` |
| Hamburger menu | `.hamburger-menu` | `.hextra-hamburger-menu` |
| Theme toggle | `.theme-toggle` | `.hextra-theme-toggle` |
| Language switcher | `.language-switcher` | `.hextra-language-switcher` |
| Sidebar container | `.sidebar-container` | `.hextra-sidebar-container` |
| Sidebar active item | `.sidebar-active-item` | `.hextra-sidebar-active-item` |
| Code filename | `.filename` | `.hextra-code-filename` |
| Copy icon | `.copy-icon` | `.hextra-copy-icon` |
| Success icon | `.success-icon` | `.hextra-success-icon` |
| Steps | `.steps` | `.hextra-steps` |
---
_This is a draft release announcement. The actual release date and features may vary._

View File

@@ -51,13 +51,13 @@ Hextra provides CSS variables to customize the width of pages, navbar, and foote
```css {filename="assets/css/custom.css"}
:root {
/* Page width - also configurable via hugo.yaml params.page.width */
--hextra-max-page-width: 80rem; /* default: 80rem (normal), 90rem (wide), 100% (full) */
--hextra-max-page-width: 80rem; /* default: 80rem (normal), 90rem (wide), 100% (full) */
/* Navbar width - also configurable via hugo.yaml params.navbar.width */
--hextra-max-navbar-width: 90rem; /* independent navbar width */
--hextra-max-navbar-width: 90rem; /* independent navbar width */
/* Footer width - also configurable via hugo.yaml params.footer.width */
--hextra-max-footer-width: 80rem; /* independent footer width */
--hextra-max-footer-width: 80rem; /* independent footer width */
}
```
@@ -111,7 +111,7 @@ The following classes can be used to customize various parts of the theme.
##### Steps
- `steps` - The steps container
- `hextra-steps` - The steps container
##### Tabs
@@ -128,9 +128,9 @@ The following classes can be used to customize various parts of the theme.
#### Navbar
- `nav-container` - The navbar container
- `nav-container-blur` - The navbar container in blur element
- `hamburger-menu` - The hamburger menu button
- `hextra-nav-container` - The navbar container
- `hextra-nav-container-blur` - The navbar container in blur element
- `hextra-hamburger-menu` - The hamburger menu button
#### Footer
@@ -139,9 +139,18 @@ The following classes can be used to customize various parts of the theme.
#### Search
- `search-wrapper` - The search wrapper container
- `search-input` - The search input element
- `search-results` - The search results list container
- `hextra-search-wrapper` - The search wrapper container
- `hextra-search-input` - The search input element
- `hextra-search-results` - The search results list container
Optional nested classes used within the search UI:
- `hextra-search-title` - The result title element
- `hextra-search-active` - The active result anchor
- `hextra-search-no-result` - The empty state element
- `hextra-search-prefix` - The breadcrumb/prefix label for grouped results
- `hextra-search-excerpt` - The result snippet text
- `hextra-search-match` - The highlighted query span
#### Table of Contents
@@ -149,27 +158,29 @@ The following classes can be used to customize various parts of the theme.
#### Sidebar
- `mobile-menu-overlay` - The overlay element for the mobile menu
- `sidebar-container` - The sidebar container
- `sidebar-active-item` - The active item in the sidebar
- `hextra-sidebar-container` - The sidebar container
- `hextra-sidebar-active-item` - The active item in the sidebar
#### Language Switcher
- `language-switcher` - The language switcher button
- `language-options` - The language options container
- `hextra-language-switcher` - The language switcher button
- `hextra-language-options` - The language options container
#### Theme Toggle
- `theme-toggle` - The theme toggle button
- `hextra-theme-toggle` - The theme toggle button
#### Code Copy Button
- `hextra-code-copy-btn-container` - The code copy button container
- `hextra-code-copy-btn` - The code copy button
- `hextra-copy-icon` - The copy icon element
- `hextra-success-icon` - The success icon element
#### Code Block
- `hextra-code-block` - The code block container
- `hextra-code-filename` - The filename element for code blocks
#### Feature Card
@@ -179,10 +190,6 @@ The following classes can be used to customize various parts of the theme.
- `hextra-feature-grid` - The feature grid container
#### Breadcrumbs
No specific class is available for breadcrumbs.
### Syntax Highlighting
List of available syntax highlighting themes are available at [Chroma Styles Gallery](https://xyproto.github.io/splash/docs/all.html). The stylesheet can be generated using the command:

View File

@@ -11,13 +11,13 @@ Hugo supports [Markdown](https://en.wikipedia.org/wiki/Markdown) syntax for form
### Styling Text
| Style | Syntax | Example | Output |
| -------- | -------- | ------ | ------ |
| Bold | `**bold text**` | `**bold text**` | **bold text** |
| Italic | `*italicized text*` | `*italicized text*` | *italicized text* |
| Strikethrough | `~~strikethrough text~~` | `~~strikethrough text~~` | ~~strikethrough text~~ |
| Subscript | `<sub></sub>` | `This is a <sub>subscript</sub> text` | This is a <sub>subscript</sub> text |
| Superscript | `<sup></sup>` | `This is a <sup>superscript</sup> text` | This is a <sup>superscript</sup> text |
| Style | Syntax | Example | Output |
| :------------ | :----------------------- | :-------------------------------------- | :------------------------------------ |
| Bold | `**bold text**` | `**bold text**` | **bold text** |
| Italic | `*italicized text*` | `*italicized text*` | _italicized text_ |
| Strikethrough | `~~strikethrough text~~` | `~~strikethrough text~~` | ~~strikethrough text~~ |
| Subscript | `<sub></sub>` | `This is a <sub>subscript</sub> text` | This is a <sub>subscript</sub> text |
| Superscript | `<sup></sup>` | `This is a <sup>superscript</sup> text` | This is a <sup>superscript</sup> text |
### Blockquotes
@@ -79,28 +79,28 @@ Please make sure you are using the latest version of Hextra and [Hugo v0.146.0](
Tables aren't part of the core Markdown spec, but Hugo supports them out-of-the-box.
| Name | Age |
|--------|------|
| Bob | 27 |
| Alice | 23 |
| Name | Age |
| :---- | :-- |
| Bob | 27 |
| Alice | 23 |
```markdown {filename=Markdown}
| Name | Age |
|--------|------|
| Bob | 27 |
| Alice | 23 |
| Name | Age |
| :---- | :-- |
| Bob | 27 |
| Alice | 23 |
```
#### Inline Markdown within tables
| Italics | Bold | Code |
| -------- | -------- | ------ |
| *italics* | **bold** | `code` |
| :-------- | :------- | :----- |
| _italics_ | **bold** | `code` |
```markdown {filename=Markdown}
| Italics | Bold | Code |
| -------- | -------- | ------ |
| *italics* | **bold** | `code` |
| :-------- | :------- | :----- |
| _italics_ | **bold** | `code` |
```
### Code Blocks
@@ -137,22 +137,22 @@ Tables aren't part of the core Markdown spec, but Hugo supports them out-of-the-
#### Nested list
* Fruit
* Apple
* Orange
* Banana
* Dairy
* Milk
* Cheese
- Fruit
- Apple
- Orange
- Banana
- Dairy
- Milk
- Cheese
```markdown {filename=Markdown}
* Fruit
* Apple
* Orange
* Banana
* Dairy
* Milk
* Cheese
- Fruit
- Apple
- Orange
- Banana
- Dairy
- Milk
- Cheese
```
### Images
@@ -165,10 +165,10 @@ Tables aren't part of the core Markdown spec, but Hugo supports them out-of-the-
With caption:
![landscape](https://picsum.photos/800/600 "Unsplash Landscape")
![landscape](https://picsum.photos/800/600 "Lorem Picsum")
```markdown {filename=Markdown}
![landscape](https://picsum.photos/800/600 "Unsplash Landscape")
![landscape](https://picsum.photos/800/600 "Lorem Picsum")
```
For more advanced functionality, use Hugo's built-in [Figure shortcode](https://gohugo.io/shortcodes/figure/).
@@ -192,7 +192,7 @@ For more configuration options, see Hugo documentation on [Configure Markup](htt
## Learning Resources
* [Markdown Guide](https://www.markdownguide.org/)
* [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
* [Markdown Tutorial](https://www.markdowntutorial.com/)
* [Markdown Reference](https://commonmark.org/help/)
- [Markdown Guide](https://www.markdownguide.org/)
- [Markdown Cheatsheet](https://github.com/adam-p/markdown-here/wiki/Markdown-Cheatsheet)
- [Markdown Tutorial](https://www.markdowntutorial.com/)
- [Markdown Reference](https://commonmark.org/help/)

View File

@@ -88,17 +88,14 @@
"col-align-l",
"col-align-r",
"content",
"copy-icon",
"dataframe",
"delimcenter",
"delimsizing",
"filename",
"fix",
"footnote-backref",
"footnote-ref",
"footnotes",
"frac-line",
"hamburger-menu",
"hextra-badge",
"hextra-card",
"hextra-card-icon",
@@ -109,26 +106,43 @@
"hextra-code-block",
"hextra-code-copy-btn",
"hextra-code-copy-btn-container",
"hextra-code-filename",
"hextra-copy-icon",
"hextra-custom-footer",
"hextra-error-h1",
"hextra-feature-card",
"hextra-feature-grid",
"hextra-filetree",
"hextra-filetree-folder",
"hextra-footer",
"hextra-hamburger-menu",
"hextra-icon",
"hextra-jupyter-code-cell",
"hextra-jupyter-code-cell-outputs",
"hextra-jupyter-code-cell-outputs-container",
"hextra-language-options",
"hextra-language-switcher",
"hextra-max-footer-width",
"hextra-max-navbar-width",
"hextra-max-page-width",
"hextra-nav-container",
"hextra-nav-container-blur",
"hextra-nav-menu-item",
"hextra-nav-menu-items",
"hextra-nav-menu-toggle",
"hextra-pdf",
"hextra-scrollbar",
"hextra-search-input",
"hextra-search-results",
"hextra-search-wrapper",
"hextra-sidebar-active-item",
"hextra-sidebar-collapsible-button",
"hextra-sidebar-container",
"hextra-steps",
"hextra-success-icon",
"hextra-tabs-panel",
"hextra-tabs-toggle",
"hextra-theme-toggle",
"hextra-toc",
"hide-tail",
"highlight",
@@ -653,14 +667,11 @@
"hx:xl:grid-cols-4",
"hx:z-20",
"hx:z-[-1]",
"icon",
"inner",
"katex",
"katex-display",
"katex-html",
"katex-mathml",
"language-options",
"language-switcher",
"large-op",
"lntable",
"lntd",
@@ -680,9 +691,6 @@
"msupsub",
"mtable",
"mtight",
"nav-container",
"nav-container-blur",
"next-error-h1",
"not-prose",
"nulldelimiter",
"op-symbol",
@@ -691,22 +699,14 @@
"reset-size3",
"reset-size6",
"rlap",
"search-input",
"search-results",
"search-wrapper",
"sidebar-active-item",
"sidebar-container",
"size1",
"size3",
"sizing",
"steps",
"strut",
"subheading-anchor",
"success-icon",
"svg-align",
"text",
"textrm",
"theme-toggle",
"vlist",
"vlist-r",
"vlist-s",