Skip to content

Commit a35e711

Browse files
committed
Migrated from merakiui to preline.
1 parent 00c9e29 commit a35e711

File tree

261 files changed

+3569
-18684
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

261 files changed

+3569
-18684
lines changed

Dockerfile

+1-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ FROM node:20-alpine3.17
22

33
RUN apk add zola
44
RUN npm install -g [email protected]
5-
RUN yarn add tailwindcss@latest @tailwindcss/typography
5+
RUN yarn add tailwindcss@latest @tailwindcss/typography preline@latest
66

77
CMD ["zola"]
88
ENTRYPOINT [ "zola" ]

Makefile

+7-7
Original file line numberDiff line numberDiff line change
@@ -111,15 +111,14 @@ spell-suggest:
111111
TAILWIND_BASE = styles
112112
TAILWIND_INPUT = $(TAILWIND_BASE)/site.css
113113
TAILWIND_OUTPUT = static/css/site.css
114+
JS_OUTPUT = static/js/
114115

115-
tailwind-setup: tailwind.config.js $(TAILWIND_BASE)/components
116+
tailwind-setup: tailwind.config.js $(JS_OUTPUT)/preline.js
116117

117-
$(TAILWIND_BASE)/components:
118-
mkdir -p $(TAILWIND_BASE) && \
119-
cd $(TAILWIND_BASE) && \
120-
git clone [email protected]:merakiui/merakiui.git && \
121-
mv merakiui/components merakiui/assets . && \
122-
rm -rf merakiui
118+
$(JS_OUTPUT)/preline.js:
119+
ID=$$(docker create $(DOCKER_FQN)) && \
120+
docker cp $$ID:/node_modules/preline/dist/preline.js $(TAILWIND_BASE)/ && \
121+
docker rm -v $$ID
123122

124123
tailwind.config.js:
125124
docker run -it \
@@ -134,3 +133,4 @@ tailwind-build:
134133
--entrypoint npx \
135134
$(DOCKER_FQN) \
136135
tailwindcss -i $(TAILWIND_INPUT) -o $(TAILWIND_OUTPUT) --minify
136+
cp $(TAILWIND_BASE)/*.js $(JS_OUTPUT)

site/about/index.html

+263-167
Large diffs are not rendered by default.

site/community/index.html

+263-167
Large diffs are not rendered by default.

site/css/site.css

+1-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/design/layout-home/index.html

+262-166
Large diffs are not rendered by default.

site/design/widgets/index.html

+262-166
Large diffs are not rendered by default.

site/images/[email protected]

12.5 KB
Loading

site/index.html

+266-123
Large diffs are not rendered by default.

site/js/preline.js

+2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

site/js/site.js

+87
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,87 @@
1+
//////////////////////////////////////////////////////////////////////////////
2+
/// DARK MODE ////////////////////////////////////////////////////////////
3+
//////////////////////////////////////////////////////////////////////////////
4+
5+
const HSThemeAppearance = {
6+
init() {
7+
const defaultTheme = 'default'
8+
let theme = localStorage.getItem('hs_theme') || defaultTheme
9+
10+
if (document.querySelector('html').classList.contains('dark')) return
11+
this.setAppearance(theme)
12+
},
13+
_resetStylesOnLoad() {
14+
const $resetStyles = document.createElement('style')
15+
$resetStyles.innerText = `*{transition: unset !important;}`
16+
$resetStyles.setAttribute('data-hs-appearance-onload-styles', '')
17+
document.head.appendChild($resetStyles)
18+
return $resetStyles
19+
},
20+
setAppearance(theme, saveInStore = true, dispatchEvent = true) {
21+
const $resetStylesEl = this._resetStylesOnLoad()
22+
23+
if (saveInStore) {
24+
localStorage.setItem('hs_theme', theme)
25+
}
26+
27+
if (theme === 'auto') {
28+
theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default'
29+
}
30+
31+
document.querySelector('html').classList.remove('dark')
32+
document.querySelector('html').classList.remove('default')
33+
document.querySelector('html').classList.remove('auto')
34+
35+
document.querySelector('html').classList.add(this.getOriginalAppearance())
36+
37+
setTimeout(() => {
38+
$resetStylesEl.remove()
39+
})
40+
41+
if (dispatchEvent) {
42+
window.dispatchEvent(new CustomEvent('on-hs-appearance-change', {detail: theme}))
43+
}
44+
},
45+
getAppearance() {
46+
let theme = this.getOriginalAppearance()
47+
if (theme === 'auto') {
48+
theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'default'
49+
}
50+
return theme
51+
},
52+
getOriginalAppearance() {
53+
const defaultTheme = 'default'
54+
return localStorage.getItem('hs_theme') || defaultTheme
55+
}
56+
}
57+
HSThemeAppearance.init()
58+
59+
window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', e => {
60+
if (HSThemeAppearance.getOriginalAppearance() === 'auto') {
61+
HSThemeAppearance.setAppearance('auto', false)
62+
}
63+
})
64+
65+
window.addEventListener('load', () => {
66+
const $clickableThemes = document.querySelectorAll('[data-hs-theme-click-value]')
67+
const $switchableThemes = document.querySelectorAll('[data-hs-theme-switch]')
68+
69+
$clickableThemes.forEach($item => {
70+
$item.addEventListener('click', () => HSThemeAppearance.setAppearance($item.getAttribute('data-hs-theme-click-value'), true, $item))
71+
})
72+
73+
$switchableThemes.forEach($item => {
74+
$item.addEventListener('change', (e) => {
75+
HSThemeAppearance.setAppearance(e.target.checked ? 'dark' : 'default')
76+
})
77+
78+
$item.checked = HSThemeAppearance.getAppearance() === 'dark'
79+
})
80+
81+
window.addEventListener('on-hs-appearance-change', e => {
82+
$switchableThemes.forEach($item => {
83+
$item.checked = e.detail === 'dark'
84+
})
85+
})
86+
})
87+

0 commit comments

Comments
 (0)