Skip to content

Chore/upgrade hexo8 next8#20

Merged
nick45chen merged 2 commits into
masterfrom
chore/upgrade-hexo8-next8
May 19, 2026
Merged

Chore/upgrade hexo8 next8#20
nick45chen merged 2 commits into
masterfrom
chore/upgrade-hexo8-next8

Conversation

@nick45chen
Copy link
Copy Markdown
Owner

No description provided.

nick.chen added 2 commits May 19, 2026 10:32
Document the Hexo + NexT setup, common scripts, posting flow, GitHub
Actions deploy pipeline, and collaboration rules so Claude Code has
consistent context when working in this repo.
…rances

Major dependency bump. Hexo 6.1.0 -> 8.1.2 with all plugins to latest
(generator-* v2/v4, renderer-marked v7, renderer-stylus v3, cheerio 1.2.0).
NexT theme fully replaced with 8.27.0; customizations re-applied for scheme,
avatar, social, footer, and animated heart icon.

CI bumped from Node 17 (EOL) to Node 20 LTS in pages.yml; upgraded
actions/checkout, setup-node, peaceiris/actions-gh-pages to current majors;
deploy step now guarded to master to prevent feature branches from
overwriting gh-pages.

Replaced Gitalk with Utterances because Gitalk's browser-side OAuth flow
exposes client_secret to visitors. Utterances uses a GitHub App and needs no
client secret. Gitalk credentials cleared from theme config.
@nick45chen nick45chen merged commit 3b73d24 into master May 19, 2026
1 check passed
@qodo-code-review
Copy link
Copy Markdown

Review Summary by Qodo

Upgrade to Hexo 8 and Next 8 with comprehensive CSS/JS modernization and component restructuring

✨ Enhancement

Grey Divider

Walkthroughs

Description
• **Major CSS refactoring**: Reorganized stylesheet structure with new index files for modular
  component organization, replaced deprecated transition mixins with modern CSS transitions, and added
  comprehensive dark mode support with CSS custom properties and light-dark() function
• **CSS variables and configuration integration**: Converted hardcoded values to hexo-config
  integrated variables, replaced z-index values (1000-1500) with smaller values (5-50) to fix stacking
  context issues, and implemented map-based structures for note and label styling
• **Layout modernization**: Converted sidebar to sticky positioning on desktop, refactored post
  header with flexbox layout, redesigned post gallery with overlapping images, and simplified menu and
  navigation styling across all schemes (Muse, Mist, Pisces, Gemini)
• **JavaScript modernization**: Replaced Velocity.js with anime.js for animations, refactored
  utilities to ES6 arrow functions with async/await patterns, modernized motion system with
  timeline-based animations, and added new modules for search, analytics, comments, and schedule
  integration
• **Helper and filter improvements**: Refactored helpers as exportable modules, updated Google Fonts
  API to v2, improved vendor management with multi-CDN support, enhanced comment filters with
  simplified configuration, and added comprehensive script minification based on feature detection
• **New components and features**: Added new tag plugins (link-grid, video, PDF), created new
  styling components (footer index, post-body, post-footer, highlight index), implemented dynamic
  CONFIG proxy for lazy loading, added Algolia and local search implementations, and created
  comprehensive test suites for tag plugins and helpers
• **Configuration enhancements**: Added conditional rendering for features (TOC, back-to-top,
  github-banner, reading-progress, bookmark), improved config merging with deprecation warnings, added
  support for mobile layout economy and light-dark mode toggle, and implemented navigation tree
  builder for menu configuration
Diagram
flowchart LR
  A["CSS Refactoring<br/>Maps & Config"] --> B["Modular Structure<br/>Index Files"]
  C["JS Modernization<br/>ES6 & anime.js"] --> D["Enhanced Utilities<br/>& Helpers"]
  E["Layout Updates<br/>Flexbox & Sticky"] --> F["Improved Components<br/>& Styling"]
  G["New Features<br/>Search & Analytics"] --> H["Test Coverage<br/>& Validation"]
  B --> I["Modern NexT 8<br/>Theme"]
  D --> I
  F --> I
  H --> I
Loading

Grey Divider

File Changes

1. themes/next/source/css/_variables/base.styl ✨ Enhancement +173/-106

Refactor variables with maps and config integration

• Reorganized color system variables and added transition duration variables for consistent
 animations
• Added dark mode selection colors and theme color variables with hexo-config integration
• Replaced hardcoded z-index values (1000-1500) with smaller values (5-50) to fix stacking context
 issues
• Refactored code highlight variables to use hexo-config for light/dark backgrounds and
 foregrounds
• Converted note styling variables from individual declarations to map-based structures for better
 maintainability
• Added new variables for tag cloud, sidebar width, badge styling, and post card margins

themes/next/source/css/_variables/base.styl


2. themes/next/source/css/_common/scaffolding/tags/note.styl ✨ Enhancement +105/-267

Simplify note styling with map-based approach

• Simplified note styling by replacing repetitive type-specific declarations with a loop over
 $note-types
• Converted individual note color variables to map-based structures for cleaner code organization
• Added support for dark mode and light-dark CSS functions for better theme switching
• Introduced transform-map function to generate dark mode variants dynamically
• Wrapped entire note styling in a conditional check for note.style != 'disabled'

themes/next/source/css/_common/scaffolding/tags/note.styl


3. themes/next/source/css/_common/components/third-party/search.styl ✨ Enhancement +112/-146

Enhance search UI with flexbox and dark mode

• Wrapped search functionality in conditional checks for local_search.enable or
 algolia_search.enable
• Restructured search popup layout to use flexbox with centered positioning instead of fixed left
 positioning
• Added dark mode support with @media (prefers-color-scheme: dark) for search header background
• Refactored search result container to use flexbox layout with proper overflow handling
• Updated transition timing from .2s to .4s for smoother animations

themes/next/source/css/_common/components/third-party/search.styl


View more (254)
4. themes/next/source/css/_mixins.styl ✨ Enhancement +222/-35

Add new mixins and remove deprecated transitions

• Removed deprecated transition mixins (the-transition, the-transition-ease-in,
 the-transition-ease-out)
• Added new light-dark-block mixin for CSS light-dark() function support with feature detection
• Added sidebar mixin to conditionally apply styles based on scheme type
• Added utility mixins: post-card, main-container, sidebar-toggle, round-icon,
 toggle-arrow, toggle-close
• Added site-nav-hide-by-default, button, gemini-block, menu-item-row, badge mixins for
 component styling
• Updated font-family-icons to accept optional icon parameter and changed font to 'Font Awesome 7
 Free'

themes/next/source/css/_mixins.styl


5. themes/next/source/css/_schemes/Gemini/index.styl ✨ Enhancement +19/-116

Refactor Gemini scheme with new block mixins

• Simplified block styling by using new gemini-block and gemini-block-not-first mixins
• Removed redundant background and shadow declarations by consolidating into mixin usage
• Updated class selectors from .content-wrap to .main-inner for consistency
• Removed $use-seo variable usage and simplified heading border logic
• Updated media query comments from > 768px to >= 768px for clarity

themes/next/source/css/_schemes/Gemini/index.styl


6. themes/next/source/css/_colors.styl ✨ Enhancement +69/-0

Add CSS custom properties and light-dark support

• Added CSS custom properties for selection colors, theme colors, and highlight variables
• Added support for lightdark.enable configuration with light-dark() CSS function
• Added color-scheme property for both light and dark modes
• Extended dark mode media query to include iframe color-scheme: light override
• Added comprehensive light-dark block with all color variables using light-dark() function

themes/next/source/css/_colors.styl


7. themes/next/source/css/_schemes/Pisces/_sidebar.styl ✨ Enhancement +57/-92

Convert sidebar to sticky positioning on desktop

• Wrapped all sidebar styles in +desktop() mixin to apply only on desktop viewports
• Changed sidebar positioning from position: static to position: sticky with `top:
 $sidebar-offset`
• Removed affix and affix-bottom classes in favor of sticky positioning
• Updated sidebar-inner to use max-height with viewport calculation instead of fixed positioning
• Refactored links styling and added flex-wrap() mixin usage for author links

themes/next/source/css/_schemes/Pisces/_sidebar.styl


8. themes/next/source/css/_common/scaffolding/highlight/index.styl ✨ Enhancement +154/-0

Create new highlight styling with config support

• Created new file with highlight/code styling using @require directives for external highlight
 files
• Added support for both light and dark mode highlight configurations with conditional requires
• Implemented placeholder variables $code-inline, $code-block, $figcaption for consistent
 styling
• Added styling for code elements, kbd, figure.highlight with gutter support
• Included support for copy-code and fold features with conditional requires

themes/next/source/css/_common/scaffolding/highlight/index.styl


9. themes/next/source/css/_common/outline/sidebar/sidebar-nav.styl ✨ Enhancement +100/-12

Refactor sidebar navigation with animations

• Restructured sidebar navigation to use height-based animations instead of display toggling
• Added sidebar-panel-container with grid layout for TOC/Overview scrolling
• Implemented @keyframes animations for panel activation/deactivation with smooth transitions
• Changed navigation from inline display to hidden state with visibility and pointer-events control
• Added support for sidebar-nav-active, sidebar-toc-active, sidebar-overview-active states

themes/next/source/css/_common/outline/sidebar/sidebar-nav.styl


10. themes/next/source/css/_common/outline/mobile.styl ✨ Enhancement +57/-69

Add mobile layout economy configuration

• Wrapped all mobile layout economy styles in if (hexo-config('mobile_layout_economy'))
 conditional
• Updated class selectors from .content-wrap to .main-inner for consistency
• Changed post header margin from 3px 0 10px 0 to margin-bottom: 10px
• Updated heading margins from 10px 0 8px to 20px 0 8px for better spacing
• Added support for figure figcaption margin fix

themes/next/source/css/_common/outline/mobile.styl


11. themes/next/source/css/_common/scaffolding/tags/tabs.styl ✨ Enhancement +26/-34

Enhance tabs with sticky nav and improved styling

• Added sticky positioning to tab navigation with z-index control
• Changed tab background to use conditional logic based on scheme type
• Updated transition calls from the-transition-ease-out() to `transition: all
 $transition-ease-out`
• Restructured tab-content border-radius to apply to container instead of individual panes
• Simplified active tab styling by using border-*-color instead of full border redeclaration

themes/next/source/css/_common/scaffolding/tags/tabs.styl


12. themes/next/source/css/_common/components/post/post-header.styl ✨ Enhancement +39/-23

Refactor post header with flexbox layout

• Added margin-bottom: 60px and text-align: center to post-header
• Updated post-edit-link styling with float: right and changed transition to `transition: color
 $transition-ease-in`
• Added max-width: 100% to post-title-link to fix issue #736
• Replaced visibility: hidden with transition on ::before pseudo-element
• Renamed .post-meta to .post-meta-container and restructured with flexbox layout
• Added .post-sticky-flag styling and .post-meta-break for flex layout control

themes/next/source/css/_common/components/post/post-header.styl


13. themes/next/source/css/_common/components/pages/schedule.styl ✨ Enhancement +35/-37

Refactor schedule with CSS custom properties

• Converted event styling to use CSS custom properties (--event-background, --event-foreground,
 --event-title)
• Replaced inline icon content with round-icon mixin for circular dot animation
• Updated event-summary positioning to use absolute positioning with padding-left: 35px
• Added animation delay for odd-numbered events and refactored event spacing
• Simplified event-past styling by using CSS custom properties instead of individual declarations

themes/next/source/css/_common/components/pages/schedule.styl


14. themes/next/source/css/_common/components/post/post-collapse.styl ✨ Enhancement +21/-28

Simplify post collapse with round-icon mixin

• Changed selector from .posts-collapse to .posts-collapse .post-content with margin-bottom
• Replaced inline circle styling with round-icon mixin for timeline dots
• Updated transition calls from the-transition() to transition: border $transition-ease
• Added .collection-year-count with badge() mixin styling
• Simplified post-header border and positioning with cleaner margin calculations

themes/next/source/css/_common/components/post/post-collapse.styl


15. themes/next/source/css/_common/scaffolding/tags/link-grid.styl ✨ Enhancement +109/-0

Create new link-grid component with animations

• Created new file with grid-based link display using CSS Grid with auto-fill and minmax
• Implemented hover animation with next-shake keyframes for interactive feedback
• Added circular image styling with border-radius and absolute positioning
• Included responsive design with gap spacing and min-width constraint
• Added keyframe animation for shake effect on hover and transform on active state

themes/next/source/css/_common/scaffolding/tags/link-grid.styl


16. themes/next/source/css/_common/outline/sidebar/index.styl ✨ Enhancement +115/-0

Create new sidebar index with mixin wrapper

• Created new file consolidating sidebar styling with +sidebar() mixin wrapper
• Implemented sidebar positioning based on $sidebar-toggle-alignment variable
• Added sidebar dimmer overlay with opacity and visibility transitions
• Included styling for sidebar-inner, links, and social icons with color transitions
• Added imports for sidebar-toggle, sidebar-nav, sidebar-toc, and related components

themes/next/source/css/_common/outline/sidebar/index.styl


17. themes/next/source/css/_common/scaffolding/base.styl ✨ Enhancement +25/-31

Update base styling with CSS variables

• Updated selection styling to use CSS custom properties var(--selection-bg) and
 var(--selection-color)
• Added box-sizing: border-box, min-height: 100%, and position: relative to body
• Added conditional support for body_scrollbar.overlay and body_scrollbar.stable configurations
• Updated heading margin from 20px 0 15px to 30px 0 15px for better spacing
• Changed link selector from a, span.exturl to just a and added cursor: pointer
• Added embed to media element selector and removed span.exturl references

themes/next/source/css/_common/scaffolding/base.styl


18. themes/next/source/css/_common/outline/header/github-banner.styl ✨ Enhancement +43/-44

Add github-banner configuration conditional

• Wrapped entire github-banner styling in if (hexo-config('github_banner.enable')) conditional
• Changed SVG fill color from $bg-color to var(--theme-color) for dynamic theming
• Updated conditional logic from || to or for consistency
• Simplified mobile styling by removing redundant color assignments
• Maintained animation and positioning logic while improving configuration support

themes/next/source/css/_common/outline/header/github-banner.styl


19. themes/next/source/css/_common/outline/sidebar/sidebar-toc.styl ✨ Enhancement +49/-43

Add TOC configuration and height animations

• Wrapped entire TOC styling in if (hexo-config('toc.enable')) conditional
• Replaced the-transition() with transition: all $transition-ease
• Implemented height-based animations for nested nav items instead of display toggling
• Added CSS custom property --height for dynamic height calculations
• Updated active state styling with opacity and visibility transitions

themes/next/source/css/_common/outline/sidebar/sidebar-toc.styl


20. themes/next/source/css/_schemes/Pisces/_layout.styl ✨ Enhancement +16/-68

Refactor Pisces layout with mixins

• Simplified header styling by using gemini-block() mixin instead of manual declarations
• Changed main layout to use main-container() mixin for consistent width handling
• Updated main-inner to use flexbox with align-items: stretch for equal height with header
• Removed absolute positioning from header-inner in favor of sticky positioning in sidebar
• Simplified footer-inner padding logic based on $sidebar-toggle-alignment variable

themes/next/source/css/_schemes/Pisces/_layout.styl


21. themes/next/source/css/_common/outline/footer/index.styl ✨ Enhancement +102/-0

Create new footer styling with animations

• Created new file with comprehensive footer styling including transitions and animations
• Added support for language selection with opacity-based visibility
• Implemented icon animation with icon-animate keyframes for heart icon
• Added conditional styling for beian and busuanzi_count configurations
• Included flexbox layout with flex-column() mixin and main-container() for responsive design

themes/next/source/css/_common/outline/footer/index.styl


22. themes/next/source/css/_common/scaffolding/toggles.styl ✨ Enhancement +13/-74

Simplify toggles with mixin-based styling

• Simplified toggle styling by removing sidebar position conditional logic
• Replaced individual toggle-line styling with toggle-arrow and toggle-close mixins
• Updated transition property to be more specific with `transition-property: left, opacity, top,
 transform, width`
• Changed toggle-line display from inline-block to block for better layout control
• Removed vendor-prefixed properties and simplified margin calculations

themes/next/source/css/_common/scaffolding/toggles.styl


23. themes/next/source/css/_variables/Pisces.styl ✨ Enhancement +19/-12

Update Pisces variables for dual-column layout

• Updated sidebar width variable from sidebar.width to sidebar.width_dual_column configuration
• Renamed $sidebar-desktop to $sidebar-width-dual-column for clarity
• Added badge styling variables with border-radius, padding, and text-shadow
• Updated button opacity variables and added $b2t-opacity-hover
• Added $brand-padding and $site-subtitle-margin variables for header styling

themes/next/source/css/_variables/Pisces.styl


24. themes/next/source/css/_common/components/post/post-body.styl ✨ Enhancement +84/-0

Create new post-body styling component

• Created new file with comprehensive post body styling including font and text alignment
• Added header anchor styling with opacity transitions and icon support via font-family-icons
• Implemented figure and figcaption styling with proper margins and text alignment
• Added video-container with aspect ratio padding for responsive embedded videos
• Included support for external URL icons and proper spacing for media elements

themes/next/source/css/_common/components/post/post-body.styl


25. themes/next/source/css/_common/components/back-to-top.styl ✨ Enhancement +43/-28

Add back-to-top configuration conditional

• Wrapped entire back-to-top styling in if (hexo-config('back2top.enable')) conditional
• Refactored styling to support both sidebar and fixed position modes
• Added flexbox layout with align-items: center for icon alignment
• Updated opacity transitions and hover states based on configuration
• Simplified scroll percent display logic with conditional rendering

themes/next/source/css/_common/components/back-to-top.styl


26. themes/next/source/css/_common/scaffolding/highlight/copy-code.styl ✨ Enhancement +20/-19

Update copy-code styling with dark mode

• Updated selector from .highlight-container to .highlight and .code-container
• Added .code-lang styling for watermark display with opacity and pointer-events control
• Changed copy button transition from the-transition() to transition: opacity $transition-ease
• Updated mac style copy button color to use var(--highlight-foreground) for dark mode support
• Refactored mac style highlight container to use round-icon mixin for circular dots

themes/next/source/css/_common/scaffolding/highlight/copy-code.styl


27. themes/next/source/css/_common/components/post/post-reward.styl ✨ Enhancement +33/-37

Refactor post-reward with mixins and variables

• Updated reward container margin to use $post-card-margin variable
• Refactored button styling to use button() mixin with $sidebar-highlight color
• Changed reward display from always visible to conditional with .active class
• Updated image width to use $post-reward-img-width variable
• Replaced inline animation with next-roll keyframes and added animation delay support

themes/next/source/css/_common/components/post/post-reward.styl


28. themes/next/source/css/_common/components/post/post-followme.styl ✨ Enhancement +47/-31

Add conditional rendering and improve follow-me component styling

• Wrapped styles in if (hexo-config('follow_me')) conditional check
• Refactored layout using post-card() mixin and improved flexbox structure
• Added position: relative to .social-item and new .social-item-img hover display
• Simplified social link styling with block display and added hover tooltip positioning

themes/next/source/css/_common/components/post/post-followme.styl


29. themes/next/source/css/_common/scaffolding/pagination.styl ✨ Enhancement +22/-35

Refactor pagination styles with mixins and simplify transitions

• Extracted $page-number-current mixin for active pagination state
• Simplified margin/padding using shorthand notation
• Replaced the-transition() with explicit transition: border-color $transition-ease
• Reorganized mobile styles within media query blocks and removed redundant rules

themes/next/source/css/_common/scaffolding/pagination.styl


30. themes/next/source/css/_schemes/Muse/_sidebar.styl ✨ Enhancement +18/-57

Simplify sidebar positioning with media query approach

• Replaced position-based sidebar logic with +desktop-large() media query approach
• Removed old left/right positioning conditionals and replaced with padding-based layout
• Added support for $sidebar-toggle-alignment variable for flexible positioning
• Simplified to focus on large desktop layout only

themes/next/source/css/_schemes/Muse/_sidebar.styl


31. themes/next/source/css/_schemes/Muse/_menu.styl ✨ Enhancement +16/-22

Update menu selectors and consolidate active state styling

• Renamed .menu to .main-menu for clarity in mobile styles
• Changed icon selector from .fa, .fab, .far, .fas to i[class^='fa']
• Consolidated .menu-item-active a styles into hover/active state with `&:hover,
 &.menu-item-active`
• Removed .badge styling (moved to separate mixin)

themes/next/source/css/_schemes/Muse/_menu.styl


32. themes/next/source/css/_common/components/third-party/disqusjs.styl ✨ Enhancement +48/-0

Add new disqusjs component styling with dark mode support

• Created new file with conditional if (hexo-config('disqusjs.enable')) wrapper
• Added dark mode support with @media (prefers-color-scheme:dark) styles
• Styled disqusjs components including navigation, buttons, and content areas
• Applied CSS variables for theme colors and dark mode compatibility

themes/next/source/css/_common/components/third-party/disqusjs.styl


33. themes/next/source/css/_schemes/Mist/_posts-expand.styl ✨ Enhancement +17/-17

Refactor post header and meta styling with CSS variables

• Changed .post-title, .post-meta selector to .post-header for consistency
• Added .post-meta-container with margin-top and updated .post-meta with flexbox
• Changed :not(:first-child) to :not(:first-of-type) for better CSS specificity
• Updated color variables to use CSS custom properties (var(--content-bg-color), etc.)

themes/next/source/css/_schemes/Mist/_posts-expand.styl


34. themes/next/source/css/_common/outline/header/menu.styl ✨ Enhancement +12/-29

Simplify menu styling and add motion configuration check

• Changed menu margin/padding from margin-top: 20px; padding-left: 0 to `margin: 0; padding: 1em
 0`
• Updated icon selector from .fa, .fab, .far, .fas to i[class^='fa']
• Replaced the-transition() with explicit transition: border-color $transition-ease
• Wrapped motion transition in if (hexo-config('motion.transition.menu_item')) conditional

themes/next/source/css/_common/outline/header/menu.styl


35. themes/next/source/css/_schemes/Pisces/_menu.styl ✨ Enhancement +8/-33

Simplify Pisces menu styling and update config syntax

• Removed .site-nav-toggle, .site-nav-right styling block
• Changed if (!hexo-config(...)) to if (not hexo-config(...)) syntax
• Updated .menu-item-active a::after to .main-menu .menu-item-active::after
• Removed .badge styling and simplified menu item structure

themes/next/source/css/_schemes/Pisces/_menu.styl


36. themes/next/source/css/_common/components/pages/tag-cloud.styl ✨ Enhancement +31/-2

Add dynamic tag cloud colors with dark mode support

• Added for loop to generate .tag-cloud-{$tag-cloud} classes with color mixing
• Added dark mode support with @media (prefers-color-scheme: dark) block
• Added light/dark mode toggle support with if (hexo-config('lightdark.enable'))
• Removed inline hover color styling in favor of class-based approach

themes/next/source/css/_common/components/pages/tag-cloud.styl


37. themes/next/source/css/_common/outline/sidebar/site-state.styl ✨ Enhancement +21/-26

Add conditional rendering and simplify site-state component

• Wrapped entire component in if (hexo-config('site_state')) conditional
• Changed .site-state to use flex-wrap() mixin instead of explicit flex properties
• Updated .site-state-item with improved link styling and removed border logic
• Simplified structure by removing unnecessary nesting and consolidating styles

themes/next/source/css/_common/outline/sidebar/site-state.styl


38. themes/next/source/css/_common/components/post/post-footer.styl ✨ Enhancement +53/-0

Create new post-footer component with copyright and tags styling

• Created new file with flexbox layout for post footer
• Added .post-eof styling with conditional display for last post
• Added .post-copyright styling wrapped in if (hexo-config('creative_commons.post'))
• Added .post-tags styling with alignment and spacing

themes/next/source/css/_common/components/post/post-footer.styl


39. themes/next/source/css/_schemes/Mist/_header.styl ✨ Enhancement +11/-18

Refactor header structure and simplify logo line animations

• Renamed .header to .column and .header-inner to header.header
• Simplified .logo-line-before, .logo-line-after to single .logo-line class
• Updated motion animations to use transform: scaleX() instead of left/right positioning
• Removed unnecessary padding and overflow properties

themes/next/source/css/_schemes/Mist/_header.styl


40. themes/next/source/css/main.styl ✨ Enhancement +12/-12

Update main stylesheet with vendor configuration and import improvements

• Updated CSS Style Guide URL from http:// to https://
• Added vendors = official for Stylus vendor prefixes
• Changed variable import from loop to explicit imports for base and $scheme
• Updated import statements to use consistent quote style (single quotes)

themes/next/source/css/main.styl


41. themes/next/source/css/_common/components/post/index.styl ✨ Enhancement +53/-0

Create post components index with RTL and motion support

• Created new index file for post components
• Added RTL support for post body and title with UKIJ Ekran font
• Added motion transition visibility settings for post elements
• Imported all post-related stylesheets (post-collapse, post-body, post-gallery, etc.)

themes/next/source/css/_common/components/post/index.styl


42. themes/next/source/css/_common/components/reading-progress.styl ✨ Enhancement +24/-12

Add conditional rendering and CSS variable support to reading progress

• Wrapped entire component in if (hexo-config('reading_progress.enable')) conditional
• Added CSS custom property --progress for dynamic width calculation
• Changed unquote() to convert() function for config values
• Added support for reversed progress bar and configurable start position

themes/next/source/css/_common/components/reading-progress.styl


43. themes/next/source/css/_common/outline/header/site-meta.styl ✨ Enhancement +13/-10

Simplify site-meta styling and add custom logo image support

• Changed text-align: $site-meta-text-align to hardcoded center
• Added .custom-logo-image styling with margin-top and mobile display none
• Updated .brand padding to use $brand-padding variable
• Simplified .site-title line-height and removed .brand opacity from motion

themes/next/source/css/_common/outline/header/site-meta.styl


44. themes/next/source/css/_common/components/post/post-gallery.styl ✨ Enhancement +27/-14

Redesign post gallery with flexbox and overlapping image layout

• Changed layout from CSS Grid to Flexbox with overlapping images
• Added clip-path for image overlap effect and negative margins
• Updated image styling with object-fit: cover and full dimensions
• Added separate margin rules for .posts-expand and .posts-collapse

themes/next/source/css/_common/components/post/post-gallery.styl


45. themes/next/source/css/_common/outline/header/bookmark.styl ✨ Enhancement +19/-19

Add conditional rendering and improve bookmark styling

• Wrapped entire component in if (hexo-config('bookmark.enable')) conditional
• Changed border-bottom: none to border-bottom: 0
• Updated transition from .3s to top .3s for specificity
• Changed unquote() to convert() and updated font-family-icons() call

themes/next/source/css/_common/outline/header/bookmark.styl


46. themes/next/source/css/noscript.styl ✨ Enhancement +47/-0

Create noscript fallback stylesheet for JavaScript disabled state

• Created new stylesheet for noscript fallback styles
• Added visibility and opacity resets for motion elements
• Added .noscript-warning banner styling for JavaScript disabled warning
• Ensured all animated elements are visible when JavaScript is disabled

themes/next/source/css/noscript.styl


47. themes/next/source/css/_common/outline/sidebar/sidebar-toggle.styl ✨ Enhancement +14/-17

Refactor sidebar toggle with variables and mixin usage

• Replaced hardcoded values with variables ($sidebar-toggle-size, $sidebar-toggle-padding)
• Added sidebar-toggle() mixin call for consistent styling
• Updated hover state with $sidebar-highlight variable
• Added media query for hover support and toggle arrow animations

themes/next/source/css/_common/outline/sidebar/sidebar-toggle.styl


48. themes/next/source/css/_schemes/Pisces/_header.styl ✨ Enhancement +22/-14

Update Pisces header with theme color and dual-column layout

• Renamed .site-brand-container background from $black-deep to var(--theme-color)
• Added .column styling with $sidebar-width-dual-column variable
• Moved .site-nav-toggle, .site-nav-right styling into this file
• Simplified structure with conditional box-shadow for .site-nav-on state

themes/next/source/css/_schemes/Pisces/_header.styl


49. themes/next/source/css/_schemes/Mist/_menu.styl ✨ Enhancement +10/-15

Refactor Mist menu styling with main-menu separation

• Added .main-menu styling with mobile padding adjustments
• Changed menu padding from margin: 0 to padding: 0
• Updated icon selector from .fa, .fab, .far, .fas to implicit styling
• Removed .badge styling and simplified menu item structure

themes/next/source/css/_schemes/Mist/_menu.styl


50. themes/next/source/css/_variables/Mist.styl ✨ Enhancement +12/-2

Add Mist scheme variables for layout and component styling

• Added $scheme-text-align = left variable
• Added content and post padding variables ($content-padding-bottom, $posts-first-padding)
• Added $brand-padding variable for brand styling
• Added badge styling variables ($badge-background, $badge-border-radius, $badge-text-shadow)

themes/next/source/css/_variables/Mist.styl


51. themes/next/source/css/_common/components/third-party/gitalk.styl ✨ Enhancement +23/-5

Add conditional rendering and dark mode support to gitalk

• Wrapped entire component in if (hexo-config('gitalk.enable')) conditional
• Added dark mode support with @media (prefers-color-scheme: dark) styles
• Added light/dark mode toggle support with if (hexo-config('lightdark.enable'))
• Updated border styling from none to 0

themes/next/source/css/_common/components/third-party/gitalk.styl


52. themes/next/source/css/_common/outline/sidebar/sidebar-author.styl ✨ Enhancement +4/-10
 Simplify sidebar author styling and consolidate conditionals

themes/next/source/css/_common/outline/sidebar/sidebar-author.styl


53. themes/next/source/css/_common/outline/sidebar/sidebar-author-links.styl ✨ Enhancement +5/-21

Simplify author links styling and update icon selector

• Removed inline-block display and margin properties from links
• Changed icon selector from .fa, .fab, .far, .fas to i[class^='fa']
• Replaced colored dot pseudo-element with simple margin-right on icons
• Added conditional check for social_icons.icons_only configuration

themes/next/source/css/_common/outline/sidebar/sidebar-author-links.styl


54. themes/next/source/css/_common/scaffolding/tags/blockquote-center.styl ✨ Enhancement +9/-6

Refactor blockquote-center to use CSS pseudo-elements

• Changed border-left: none to border-left: 0
• Replaced .fa-quote-left and .fa-quote-right with &::before and &::after pseudo-elements
• Added font-family-icons() calls with icon codes for quote symbols
• Simplified structure by using pseudo-elements instead of separate elements

themes/next/source/css/_common/scaffolding/tags/blockquote-center.styl


55. themes/next/source/css/_schemes/Muse/_layout.styl ✨ Enhancement +12/-19

Refactor Muse layout with main-container mixin and variables

• Renamed .header-inner to header.header and applied main-container() mixin
• Updated .main-inner with main-container() mixin and $content-padding-bottom variable
• Changed .content to .post-block:first-of-type with $posts-first-padding variable
• Removed embed styling and simplified mobile padding rules

themes/next/source/css/_schemes/Muse/_layout.styl


56. themes/next/source/css/_common/components/post/post-nav.styl ✨ Enhancement +3/-6

Update post navigation with flexbox gap and relative units

• Added gap: 30px for flexbox spacing instead of margin-based layout
• Changed margin-top: 15px to margin-top: 1em for relative sizing
• Updated border-bottom: none to border-bottom: 0
• Removed position: relative from link styling

themes/next/source/css/_common/components/post/post-nav.styl


57. themes/next/source/css/_common/scaffolding/highlight/fold.styl ✨ Enhancement +29/-0

Create new code block fold styling component

• Created new file for code block folding functionality
• Added .expand-btn styling for expand button with absolute positioning
• Added .fold-cover gradient overlay styling
• Added .highlight-fold class for managing folded state

themes/next/source/css/_common/scaffolding/highlight/fold.styl


58. themes/next/source/css/_schemes/Mist/_layout.styl ✨ Enhancement +1/-25

Simplify Mist layout by removing redundant padding rules

• Removed .main-inner and .content padding rules
• Simplified .pagination styling by removing text-align and margin rules
• Updated mobile pagination margin to use margin: 80px 0 0

themes/next/source/css/_schemes/Mist/_layout.styl


59. themes/next/source/css/_common/outline/sidebar/related-posts.styl ✨ Enhancement +31/-0

Create new related-posts sidebar component styling

• Created new file with if (hexo-config('related_posts.enable')) conditional
• Added .sidebar-post-related and .popular-posts styling
• Added hover effects for popular posts links with background color change
• Added styling for post time display with muted color

themes/next/source/css/_common/outline/sidebar/related-posts.styl


60. themes/next/source/css/_common/outline/sidebar/sidebar-button.styl ✨ Enhancement +7/-17

Refactor sidebar button styling with button mixin

• Changed selector from .sidebar-button to .sidebar .sidebar-button
• Added :not(:first-child) margin-top rule for spacing
• Changed a to button element with button($orange) mixin
• Updated icon selector from .fa, .fab, .far, .fas to i[class^='fa']

themes/next/source/css/_common/outline/sidebar/sidebar-button.styl


61. themes/next/source/css/_common/scaffolding/tags/group-pictures.styl ✨ Enhancement +17/-11

Convert group-pictures layout from float to flexbox

• Restructured from float-based to flexbox layout
• Added gap: 3px for consistent spacing between images
• Added object-fit: cover for responsive image sizing
• Simplified column styling with flex: 1 and full dimensions

themes/next/source/css/_common/scaffolding/tags/group-pictures.styl


62. themes/next/source/css/_common/outline/sidebar/sidebar-blogroll.styl ✨ Enhancement +15/-3

Update blogroll styling with flexbox and layout options

• Added gap: 5px and flex-wrap() mixin to .links-of-blogroll-list
• Added conditional flex-direction: column for block layout
• Created new .links-of-blogroll-item styling with sidebar-inline-links-item() mixin
• Removed margin-top from .links-of-blogroll

themes/next/source/css/_common/outline/sidebar/sidebar-blogroll.styl


63. themes/next/source/css/_common/components/post/post-widgets.styl ✨ Enhancement +8/-17

Simplify post-widgets styling and remove unused classes

• Removed .post-widgets and .wp_rating styling blocks
• Simplified .social-like to use flex-wrap() mixin
• Added border-top and padding-top with relative units
• Added border-bottom: none for link styling

themes/next/source/css/_common/components/post/post-widgets.styl


64. themes/next/source/css/_common/scaffolding/tags/label.styl ✨ Enhancement +4/-23

Refactor label styling with dynamic type generation

• Removed individual label type styling (default, primary, info, success, warning, danger)
• Added for loop to generate label styles from $note-types array
• Changed to use $label[$type] variable for background colors
• Simplified structure with dynamic class generation

themes/next/source/css/_common/scaffolding/tags/label.styl


65. themes/next/source/css/_schemes/Muse/_header.styl ✨ Enhancement +9/-16

Simplify Muse header styling and add header padding

• Removed .custom-logo wrapper styling block
• Updated .custom-logo-image margin from 0 auto to 0 auto 10px
• Added header.header styling with padding-top and mobile adjustments
• Simplified structure by removing unnecessary nesting

themes/next/source/css/_schemes/Muse/_header.styl


66. themes/next/source/css/_common/outline/header/index.styl ✨ Enhancement +29/-0

Create header section index with component imports

• Created new index file for header section components
• Added .headband styling with height and mobile display none
• Added .site-brand-container flexbox styling
• Imported site-meta, site-nav, menu, bookmark, and github-banner stylesheets

themes/next/source/css/_common/outline/header/index.styl


67. themes/next/source/css/_schemes/Pisces/index.styl ✨ Enhancement +25/-0

Add Pisces scheme layout and component styling

• Added .main-inner styling with background and box-shadow
• Added .sub-menu border styling
• Added .post-block:first-of-type padding-top rule
• Added .pagination mobile margin-bottom rule

themes/next/source/css/_schemes/Pisces/index.styl


68. themes/next/source/css/_schemes/Pisces/_sub-menu.styl ✨ Enhancement +2/-4

Simplify Pisces sub-menu styling

• Removed background and border-bottom from .sub-menu
• Changed .menu-item-active a selector to .menu-item-active
• Updated link selector from a, span.exturl to just a
• Simplified styling by removing redundant properties

themes/next/source/css/_schemes/Pisces/_sub-menu.styl


69. themes/next/source/css/_common/components/third-party/math.styl ✨ Enhancement +8/-5

Add conditional rendering to math/mathjax component

• Wrapped entire component in if (hexo-config('math.mathjax.enable')) conditional
• Updated selector from mjx-container + br to mjx-container[display='true'] + br
• Changed quote style to single quotes for consistency
• Maintained overflow and display none rules

themes/next/source/css/_common/components/third-party/math.styl


70. themes/next/source/css/_common/scaffolding/tables.styl Formatting +1/-3

Simplify table margin with shorthand notation

• Changed margin from 0 0 20px 0 to 0 0 20px (shorthand notation)

themes/next/source/css/_common/scaffolding/tables.styl


71. themes/next/source/css/_common/components/third-party/index.styl ✨ Enhancement +16/-0

Create third-party components index with imports

• Created new index file for third-party components
• Imported disqusjs, gitalk, utterances, search, and math stylesheets
• Added .use-motion .animated styling for animation fill-mode
• Added sidebar animation styling for .use-motion .sidebar .animated

themes/next/source/css/_common/components/third-party/index.styl


72. themes/next/source/css/_common/components/pages/categories.styl ✨ Enhancement +2/-11

Refactor category list count with badge mixin

• Removed individual .category-list-count styling with pseudo-elements
• Added badge() mixin call for consistent badge styling
• Updated font-size to $font-size-smallest variable
• Simplified structure by using mixin instead of inline styles

themes/next/source/css/_common/components/pages/categories.styl


73. themes/next/source/css/_common/scaffolding/tags/pdf.styl ✨ Enhancement +6/-4

Add conditional rendering to PDF component

• Wrapped entire component in if (hexo-config('pdf.enable')) conditional
• Changed unquote() to convert() function for config values
• Maintained iframe and embed height/width styling

themes/next/source/css/_common/scaffolding/tags/pdf.styl


74. themes/next/source/css/_variables/Muse.styl ✨ Enhancement +3/-2

Update Muse variables with content padding definitions

• Removed $sidebar-width and $sidebar-desktop variable definitions
• Added $content-padding-bottom, $posts-first-padding, and $posts-first-padding-mobile
 variables

themes/next/source/css/_variables/Muse.styl


75. themes/next/source/css/_common/components/pages/breadcrumb.styl ✨ Enhancement +2/-2

Update breadcrumb selectors with :not() and :last-child

• Changed li + li::before selector to li:not(...

@nick45chen nick45chen deleted the chore/upgrade-hexo8-next8 branch May 19, 2026 03:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant