Commit Graph
24 Commits
Author SHA1 Message Date
JimmyandGitHub 88468ad84e refactor: cleanup stylesheet (#1286)
* refactor: cleanup stylesheet

* Update assets/scss/partials/article.scss
2026-03-05 10:40:13 +01:00
4ad88a327e feat: add GDPR cookie consent banner (#1216)
* feat: add GDPR cookie consent banner

Add a GDPR-compliant cookie consent banner that gates analytics (Google
Analytics) and functional cookies (comments) until user consent is given.

Features:
- Theme-consistent styling using CSS variables (light/dark mode)
- Settings panel with category toggles (necessary, analytics, functional)
- Consent stored in cookie for 365 days
- Google Analytics only loads after analytics consent
- Comments only load after functional consent
- Translations for all 32 supported languages
- Accessible with proper ARIA attributes and focus management

Configuration in hugo.yaml:
  params:
    cookies:
      enabled: true
      categories:
        analytics: true
        functional: true

When cookies.enabled is false, scripts load normally without consent gating.

Closes #412

* refactor: move consent-gated GA to cookies/analytics.html

Move Google Analytics consent logic to avoid shadowing Hugo's internal
`_internal/google_analytics.html` template.

Changes:
- Rename google_analytics.html → cookies/analytics.html
- Update head.html to conditionally load:
  - cookies.enabled=true: cookies/analytics.html (consent-gated)
  - cookies.enabled=false: Hugo's _internal/google_analytics.html
- Align cookies/analytics.html with Hugo's internal template:
  - Support Privacy.GoogleAnalytics.Disable setting
  - Support Privacy.GoogleAnalytics.RespectDoNotTrack setting
  - Add UA- prefix deprecation warning

Note: Custom JS is required for consent-gated GA because Hugo templates
render at build time, but consent happens at runtime. We cannot call
Hugo's internal template after the user grants consent - we must
dynamically inject the GA script via JavaScript.

* style: indent cookies/analytics.html

* refactor: don't use default, put default configurations in params.toml

* fix: don't use `description` as translation key because it's reserved and will throw error

* fix: remove footer/components/custom-font.html call

* fix: banner showSettings key

* style: indent comments/include

* Add missing article.alert translation back

* style: format i18n toml files

* style: indent head/head.html

* style adjustment

* style: add missing -

* style: format demo/config/params.toml

* style: remove redundant comments from cookies.scss

* style: update box-shadow for cookie banner content

---------

Co-authored-by: delize <4028612+delize@users.noreply.github.com>
Co-authored-by: Jimmy Cai <jimmy@cai.im>
2026-02-19 17:21:25 +01:00
Allen GuanandGitHub 58b1e0706a feat: add general.scss and change link hover style (#550) 2022-06-05 17:00:14 +02:00
Jimmy CaiandGitHub 04cdbcfedf refactor: Use flexbox gap (#520) 2022-03-03 23:11:19 +01:00
Jimmy CaiandGitHub 7d841cf237 feat(list): add subsection support (#81)
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/48
2020-12-22 21:14:50 +01:00
Jimmy CaiandGitHub b3df22940d Merge branch 'master' into template-search 2020-10-31 23:37:36 +01:00
Jimmy Cai be416830ad feat: add support for custom SCSS
closes https://github.com/CaiJimmy/hugo-theme-stack/issues/43
2020-10-31 23:36:16 +01:00
Jimmy CaiandGitHub c666c79800 Merge branch 'master' into template-search 2020-10-17 10:45:17 +02:00
Jimmy CaiandGitHub 49e568faac refactor: add .section-title (#36)
For the small title before the card

Remove .widget-title, .archive-date, .taxonomy-type from SCSS, as they all share the same style.
2020-10-12 20:49:56 +02:00
Jimmy Cai e5f96c8762 feat: add search template 2020-09-26 11:40:33 +02:00
Jimmy Cai a2a49e7537 refactor(scss): remove alert style and script
It is not used in this theme
2020-09-23 13:22:03 +02:00
Jimmy Cai 26acceb37d feat(scss): improve 2 column style 2020-09-23 13:20:18 +02:00
Jimmy Cai 7379bbe412 refactor: rename archive -> archives 2020-09-13 11:22:47 +02:00
Jimmy Cai da112157cf feat(scss): make hyperlink style available outside .article-content 2020-09-09 17:22:19 +02:00
Jimmy Cai 98804e578d refactor: add copyright info in CSS and JS 2020-09-09 16:28:38 +02:00
Jimmy Cai 7e701c0239 refactor(scss): remove comments scss folder. Include style of each comment system inside their HTML template 2020-09-09 16:19:37 +02:00
Jimmy Cai 9e42d8cd35 refactor(scss): remove helper/shadow. Expose shadow style in CSS variables 2020-09-09 16:14:30 +02:00
Jimmy Cai 190475dbad refactor(scss): create breakpoints.scss 2020-09-09 16:03:09 +02:00
Jimmy Cai c546964ce4 feat(comments): prepare for more third party comments system integration 2020-09-08 23:30:15 +02:00
Jimmy Cai 634e6ce96b feat: improve top padding and article toolbar style 2020-09-07 11:34:28 +02:00
Jimmy Cai 5412977216 fix(style): wrong padding-top for .main 2020-09-05 00:59:50 +02:00
Jimmy Cai be6fcfb526 feat(sidebar): prevent sidebar from moving on page scroll 2020-09-03 23:37:48 +02:00
Jimmy Cai 98c819b858 fix(css): remove link color transition 2020-08-24 23:39:53 +02:00
Jimmy Cai c698d944e6 🎉 Initial commit 2020-08-22 13:20:08 +02:00