zodiacfonts 1.0.0 → 1.1.1
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/CHANGELOG.md +44 -0
- package/README.md +104 -3
- package/css/zodiac-fonts.css +150 -0
- package/css/zodiac-fonts.min.css +5 -0
- package/fonts/ZodiacFontFREE.woff2 +0 -0
- package/js/zodiac-fonts.js +49 -0
- package/js/zodiac-fonts.min.js +4 -0
- package/package.json +19 -2
- package/scss/zodiac-fonts.scss +162 -0
package/CHANGELOG.md
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
|
|
3
|
+
All notable changes to the `zodiacfonts` package are documented here.
|
|
4
|
+
Format follows [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
|
|
5
|
+
Versioning follows [Semantic Versioning](https://semver.org/).
|
|
6
|
+
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
## [1.1.0] — 2026-06-20
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
- **Icon font layer** — the FREE family (`ZodiacFontFREE.woff2`) is now included in
|
|
13
|
+
the npm tarball and can be used as a web icon font alongside the SVGs.
|
|
14
|
+
- `css/zodiac-fonts.css` — `@font-face` + `.zf` base class + all 55 FREE glyph rules +
|
|
15
|
+
46 PRO class stubs (codepoints published; PRO glyphs require a Pro license and
|
|
16
|
+
`ZodiacFontPRO.woff2` to render).
|
|
17
|
+
- `css/zodiac-fonts.min.css` — minified version, recommended for production.
|
|
18
|
+
- `js/zodiac-fonts.js` — ES module companion script; auto-runs on `DOMContentLoaded`
|
|
19
|
+
in plain HTML and exports `checkZodiacGlyphs()` for SPA frameworks.
|
|
20
|
+
- `js/zodiac-fonts.min.js` — minified version.
|
|
21
|
+
- `scss/zodiac-fonts.scss` — Sass source with `$zf-font-path` and `$zf-font-family`
|
|
22
|
+
`!default` variables for easy customisation before `@use`.
|
|
23
|
+
- `package.json` `exports` map — subpath imports (`zodiacfonts/css`, `zodiacfonts/scss`,
|
|
24
|
+
`zodiacfonts/js`) now resolve correctly in all bundlers.
|
|
25
|
+
- `unicode-range` descriptor in `@font-face` — scopes the FREE font to only its 55
|
|
26
|
+
codepoints; prevents fallback interference for unmapped PRO slots.
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
- Repo structure reorganised: generated files moved from root into `css/`, `js/`, and
|
|
30
|
+
`scss/` subdirectories. `fonts/` continues to hold the WOFF2.
|
|
31
|
+
- `sideEffects` in `package.json` updated to `["**/*.css", "**/*.scss"]` so bundlers
|
|
32
|
+
do not tree-shake stylesheet imports.
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## [1.0.0] — 2026-06-06
|
|
37
|
+
|
|
38
|
+
### Added
|
|
39
|
+
- 55 free astrology SVG symbols across 8 categories: zodiac signs, main planets,
|
|
40
|
+
lunar phases, celestial points, dwarf planets & asteroids, houses, major aspects,
|
|
41
|
+
and movements.
|
|
42
|
+
- `glyphs.json` — machine-readable manifest with `name`, `slug`, `reference`,
|
|
43
|
+
`codepoint`, and `file` for every symbol.
|
|
44
|
+
- SIL Open Font License 1.1 (`OFL.txt`).
|
package/README.md
CHANGED
|
@@ -27,6 +27,7 @@ Zodiac signs, planets, lunar phases, houses, aspects and more — free for perso
|
|
|
27
27
|
- [What's inside](#whats-inside)
|
|
28
28
|
- [Installation](#installation)
|
|
29
29
|
- [Usage](#usage)
|
|
30
|
+
- [Icon font](#icon-font)
|
|
30
31
|
- [Theming with `currentColor`](#theming-with-currentcolor)
|
|
31
32
|
- [Folder structure](#folder-structure)
|
|
32
33
|
- [The manifest (`glyphs.json`)](#the-manifest-glyphsjson)
|
|
@@ -59,7 +60,21 @@ Every SVG is normalized to a `0 0 512 512` viewBox and drawn with
|
|
|
59
60
|
|
|
60
61
|
```bash
|
|
61
62
|
npm install zodiacfonts
|
|
62
|
-
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Then reference icons by their package path — no manual file copying needed:
|
|
66
|
+
|
|
67
|
+
```js
|
|
68
|
+
// Vite / webpack / Rollup
|
|
69
|
+
import ariesUrl from 'zodiacfonts/icons/signs/aries.svg';
|
|
70
|
+
|
|
71
|
+
// React + SVGR (renders as a component)
|
|
72
|
+
import AriesIcon from 'zodiacfonts/icons/signs/aries.svg?react';
|
|
73
|
+
|
|
74
|
+
// Node.js / SSR (resolve the file path)
|
|
75
|
+
import { createRequire } from 'node:module';
|
|
76
|
+
const require = createRequire(import.meta.url);
|
|
77
|
+
const ariesPath = require.resolve('zodiacfonts/icons/signs/aries.svg');
|
|
63
78
|
```
|
|
64
79
|
|
|
65
80
|
**Download / clone** (recommended for static sites)
|
|
@@ -74,6 +89,9 @@ from [`icons/`](./icons).
|
|
|
74
89
|
|
|
75
90
|
## Usage
|
|
76
91
|
|
|
92
|
+
> Paths below use the repo-relative form (`icons/signs/aries.svg`) — substitute
|
|
93
|
+
> `zodiacfonts/icons/signs/aries.svg` when referencing from an npm install.
|
|
94
|
+
|
|
77
95
|
### As an image
|
|
78
96
|
|
|
79
97
|
```html
|
|
@@ -110,9 +128,82 @@ export const Aries = () => <img src={ariesUrl} alt="Aries" width={48} height={48
|
|
|
110
128
|
<img src="assets/zodiac/signs/aries.svg" alt="Aries" width="48" height="48" />
|
|
111
129
|
```
|
|
112
130
|
|
|
113
|
-
##
|
|
131
|
+
## Icon font
|
|
132
|
+
|
|
133
|
+
Zodiac Fonts ships an optional icon font layer alongside the SVGs, letting you render glyphs with
|
|
134
|
+
a single HTML class — no image files or inline SVG required.
|
|
135
|
+
|
|
136
|
+
### Quick start (CDN)
|
|
137
|
+
|
|
138
|
+
```html
|
|
139
|
+
<!-- Add to your <head> — the font + all glyph classes load automatically -->
|
|
140
|
+
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/zodiacfonts@latest/css/zodiac-fonts.min.css" />
|
|
141
|
+
|
|
142
|
+
<!-- Render a glyph -->
|
|
143
|
+
<i class="zf zf-aries" aria-hidden="true"></i>
|
|
144
|
+
<span class="zf zf-moon" aria-label="Moon"></span>
|
|
145
|
+
```
|
|
146
|
+
|
|
147
|
+
### Quick start (npm / self-hosted)
|
|
148
|
+
|
|
149
|
+
```bash
|
|
150
|
+
npm install zodiacfonts
|
|
151
|
+
```
|
|
152
|
+
|
|
153
|
+
```js
|
|
154
|
+
// Bundler (Vite, webpack, etc.) — plain CSS
|
|
155
|
+
import 'zodiacfonts/css';
|
|
114
156
|
|
|
115
|
-
|
|
157
|
+
// Sass / SCSS projects — override font path if needed
|
|
158
|
+
// $zf-font-path: '/your/assets/ZodiacFontFREE.woff2';
|
|
159
|
+
@use 'zodiacfonts/scss';
|
|
160
|
+
```
|
|
161
|
+
|
|
162
|
+
Or copy `css/zodiac-fonts.min.css` and the `fonts/` folder to your project and link the CSS manually.
|
|
163
|
+
|
|
164
|
+
### FREE vs PRO glyphs
|
|
165
|
+
|
|
166
|
+
The stylesheet ships CSS classes for **all 101 glyphs** — the 55 FREE ones and the 46 PRO stubs.
|
|
167
|
+
FREE classes render immediately. PRO classes (marked `/* PRO */` in the source CSS) require
|
|
168
|
+
a Pro license and `ZodiacFontPRO.woff2` to be self-hosted alongside `ZodiacFontFREE.woff2`.
|
|
169
|
+
|
|
170
|
+
See [zodiacfonts.com/documentation](https://www.zodiacfonts.com/documentation) for the Pro
|
|
171
|
+
integration guide, character map, and live preview of all 101 glyphs.
|
|
172
|
+
|
|
173
|
+
### PRO usage detector
|
|
174
|
+
|
|
175
|
+
Include the optional checker script to get a browser console warning whenever a PRO glyph
|
|
176
|
+
class is used without the PRO font loaded. **No code needed** — it runs automatically.
|
|
177
|
+
|
|
178
|
+
```html
|
|
179
|
+
<!-- plain HTML / SSG — add after your CSS link, runs on DOMContentLoaded -->
|
|
180
|
+
<script type="module" src="https://cdn.jsdelivr.net/npm/zodiacfonts@latest/js/zodiac-fonts.min.js"></script>
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
```js
|
|
184
|
+
// SPA (React, Vue, Angular) — call inside your mount lifecycle
|
|
185
|
+
import { checkZodiacGlyphs } from 'zodiacfonts/js';
|
|
186
|
+
|
|
187
|
+
// React
|
|
188
|
+
useEffect(() => { checkZodiacGlyphs(); }, []);
|
|
189
|
+
|
|
190
|
+
// Vue
|
|
191
|
+
onMounted(() => checkZodiacGlyphs());
|
|
192
|
+
|
|
193
|
+
// Angular
|
|
194
|
+
ngOnInit() { checkZodiacGlyphs(); }
|
|
195
|
+
```
|
|
196
|
+
|
|
197
|
+
When a PRO glyph is detected the console shows:
|
|
198
|
+
|
|
199
|
+
```
|
|
200
|
+
[Zodiac Fonts] PRO glyph detected: .zf-ophiuchus
|
|
201
|
+
This glyph requires a Pro license — it will not render with the FREE font.
|
|
202
|
+
Self-host ZodiacFontPRO.woff2 after purchasing a Pro license.
|
|
203
|
+
→ https://www.zodiacfonts.com/documentation
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
## Theming with `currentColor`
|
|
116
207
|
|
|
117
208
|
```css
|
|
118
209
|
.zodiac-icon { color: rebeccapurple; }
|
|
@@ -138,6 +229,8 @@ Sizing is just `width` / `height` (or `font-size` when inlined and using `1em` d
|
|
|
138
229
|
|
|
139
230
|
```
|
|
140
231
|
zodiacfonts/
|
|
232
|
+
├── fonts/
|
|
233
|
+
│ └── ZodiacFontFREE.woff2 icon font (FREE codepoints only)
|
|
141
234
|
├── icons/
|
|
142
235
|
│ ├── signs/ aries.svg, taurus.svg, … (12)
|
|
143
236
|
│ ├── main-planets/ sun.svg, moon.svg, … (11)
|
|
@@ -147,6 +240,14 @@ zodiacfonts/
|
|
|
147
240
|
│ ├── houses/ house-one.svg … medium-coeli.svg (14)
|
|
148
241
|
│ ├── major-aspects/ conjunction.svg, trine.svg, … (5)
|
|
149
242
|
│ └── movements/ retrograde.svg (1)
|
|
243
|
+
├── css/
|
|
244
|
+
│ ├── zodiac-fonts.css icon font CSS (FREE rules + PRO stubs)
|
|
245
|
+
│ └── zodiac-fonts.min.css minified (recommended for production)
|
|
246
|
+
├── js/
|
|
247
|
+
│ ├── zodiac-fonts.js ES module companion script
|
|
248
|
+
│ └── zodiac-fonts.min.js minified
|
|
249
|
+
├── scss/
|
|
250
|
+
│ └── zodiac-fonts.scss Sass source with $zf-* override variables
|
|
150
251
|
├── glyphs.json machine-readable manifest of all 55 symbols
|
|
151
252
|
├── OFL.txt SIL Open Font License 1.1
|
|
152
253
|
├── package.json
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Zodiac Fonts — free astrology icon font (55 free + 46 PRO stubs)
|
|
3
|
+
* SIL Open Font License 1.1 · https://www.zodiacfonts.com
|
|
4
|
+
* Generated from glyphs.json — do not edit by hand.
|
|
5
|
+
*/
|
|
6
|
+
@font-face {
|
|
7
|
+
font-family: 'Zodiac Fonts';
|
|
8
|
+
src: url('../fonts/ZodiacFontFREE.woff2') format('woff2');
|
|
9
|
+
font-weight: 400;
|
|
10
|
+
font-style: normal;
|
|
11
|
+
font-display: block;
|
|
12
|
+
unicode-range: U+E000, U+E001, U+E002, U+E004, U+E005, U+E006, U+E007, U+E008, U+E009, U+E00A, U+E00B, U+E00C, U+E100, U+E101, U+E102, U+E103, U+E104, U+E105, U+E106, U+E107, U+E108, U+E10A, U+E10B, U+E204, U+E205, U+E206, U+E207, U+E208, U+E209, U+E20A, U+E20B, U+E300, U+E301, U+E302, U+E401, U+E500, U+E501, U+E502, U+E503, U+E504, U+E505, U+E506, U+E507, U+E508, U+E509, U+E50A, U+E50B, U+E50C, U+E50D, U+E600, U+E601, U+E602, U+E603, U+E604, U+E901;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
.zf {
|
|
16
|
+
font-family: 'Zodiac Fonts';
|
|
17
|
+
font-style: normal;
|
|
18
|
+
font-weight: 400;
|
|
19
|
+
font-variant: normal;
|
|
20
|
+
text-transform: none;
|
|
21
|
+
line-height: 1;
|
|
22
|
+
display: inline-block;
|
|
23
|
+
-webkit-font-smoothing: antialiased;
|
|
24
|
+
-moz-osx-font-smoothing: grayscale;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
.zf-aries::before { content: "\e000"; }
|
|
28
|
+
.zf-cancer::before { content: "\e001"; }
|
|
29
|
+
.zf-libra::before { content: "\e002"; }
|
|
30
|
+
.zf-capricorn::before { content: "\e004"; }
|
|
31
|
+
.zf-taurus::before { content: "\e005"; }
|
|
32
|
+
.zf-leo::before { content: "\e006"; }
|
|
33
|
+
.zf-scorpio::before { content: "\e007"; }
|
|
34
|
+
.zf-aquarius::before { content: "\e008"; }
|
|
35
|
+
.zf-gemini::before { content: "\e009"; }
|
|
36
|
+
.zf-virgo::before { content: "\e00a"; }
|
|
37
|
+
.zf-sagittarius::before { content: "\e00b"; }
|
|
38
|
+
.zf-pisces::before { content: "\e00c"; }
|
|
39
|
+
|
|
40
|
+
.zf-earth::before { content: "\e100"; }
|
|
41
|
+
.zf-sun::before { content: "\e101"; }
|
|
42
|
+
.zf-moon::before { content: "\e102"; }
|
|
43
|
+
.zf-mercury::before { content: "\e103"; }
|
|
44
|
+
.zf-venus::before { content: "\e104"; }
|
|
45
|
+
.zf-mars::before { content: "\e105"; }
|
|
46
|
+
.zf-jupiter::before { content: "\e106"; }
|
|
47
|
+
.zf-saturn::before { content: "\e107"; }
|
|
48
|
+
.zf-uranus::before { content: "\e108"; }
|
|
49
|
+
.zf-neptune::before { content: "\e10a"; }
|
|
50
|
+
.zf-pluto::before { content: "\e10b"; }
|
|
51
|
+
|
|
52
|
+
.zf-new-moon::before { content: "\e204"; }
|
|
53
|
+
.zf-waxing-crescent::before { content: "\e205"; }
|
|
54
|
+
.zf-first-quarter::before { content: "\e206"; }
|
|
55
|
+
.zf-waxing-gibbous::before { content: "\e207"; }
|
|
56
|
+
.zf-full-moon::before { content: "\e208"; }
|
|
57
|
+
.zf-waning-gibbous::before { content: "\e209"; }
|
|
58
|
+
.zf-last-quarter::before { content: "\e20a"; }
|
|
59
|
+
.zf-waning-crescent::before { content: "\e20b"; }
|
|
60
|
+
|
|
61
|
+
.zf-north-node::before { content: "\e300"; }
|
|
62
|
+
.zf-south-node::before { content: "\e301"; }
|
|
63
|
+
.zf-lilith::before { content: "\e302"; }
|
|
64
|
+
|
|
65
|
+
.zf-chiron::before { content: "\e401"; }
|
|
66
|
+
|
|
67
|
+
.zf-house-one::before { content: "\e500"; }
|
|
68
|
+
.zf-house-two::before { content: "\e501"; }
|
|
69
|
+
.zf-house-three::before { content: "\e502"; }
|
|
70
|
+
.zf-house-four::before { content: "\e503"; }
|
|
71
|
+
.zf-house-five::before { content: "\e504"; }
|
|
72
|
+
.zf-house-six::before { content: "\e505"; }
|
|
73
|
+
.zf-house-seven::before { content: "\e506"; }
|
|
74
|
+
.zf-house-eight::before { content: "\e507"; }
|
|
75
|
+
.zf-house-nine::before { content: "\e508"; }
|
|
76
|
+
.zf-house-ten::before { content: "\e509"; }
|
|
77
|
+
.zf-house-eleven::before { content: "\e50a"; }
|
|
78
|
+
.zf-house-twelve::before { content: "\e50b"; }
|
|
79
|
+
.zf-ascendant::before { content: "\e50c"; }
|
|
80
|
+
.zf-medium-coeli::before { content: "\e50d"; }
|
|
81
|
+
|
|
82
|
+
.zf-conjunction::before { content: "\e600"; }
|
|
83
|
+
.zf-opposition::before { content: "\e601"; }
|
|
84
|
+
.zf-square::before { content: "\e602"; }
|
|
85
|
+
.zf-trine::before { content: "\e603"; }
|
|
86
|
+
.zf-sextile::before { content: "\e604"; }
|
|
87
|
+
|
|
88
|
+
.zf-retrograde::before { content: "\e901"; }
|
|
89
|
+
|
|
90
|
+
/* ─── PRO glyphs ─────────────────────────────────────────────────────────────
|
|
91
|
+
These classes are part of the full Zodiac Fonts API. They will NOT render
|
|
92
|
+
with the free font — the FREE font only covers the 55 codepoints above.
|
|
93
|
+
To display PRO glyphs, purchase a Pro license and self-host ZodiacFontPRO.woff2.
|
|
94
|
+
→ https://www.zodiacfonts.com/documentation
|
|
95
|
+
─────────────────────────────────────────────────────────────────────────── */
|
|
96
|
+
|
|
97
|
+
.zf-capricorn-1::before { content: "\e003"; } /* PRO */
|
|
98
|
+
.zf-ophiuchus::before { content: "\e00d"; } /* PRO */
|
|
99
|
+
.zf-sign-cardinal::before { content: "\e00e"; } /* PRO */
|
|
100
|
+
.zf-sign-fixed::before { content: "\e00f"; } /* PRO */
|
|
101
|
+
.zf-sign-mutable::before { content: "\e010"; } /* PRO */
|
|
102
|
+
|
|
103
|
+
.zf-uranus-2::before { content: "\e109"; } /* PRO */
|
|
104
|
+
.zf-pluto-2::before { content: "\e10c"; } /* PRO */
|
|
105
|
+
|
|
106
|
+
.zf-solar-eclipse-1::before { content: "\e200"; } /* PRO */
|
|
107
|
+
.zf-lunar-eclipse-1::before { content: "\e201"; } /* PRO */
|
|
108
|
+
.zf-solar-eclipse-2::before { content: "\e202"; } /* PRO */
|
|
109
|
+
.zf-lunar-eclipse-2::before { content: "\e203"; } /* PRO */
|
|
110
|
+
|
|
111
|
+
.zf-wheel-of-fortune::before { content: "\e303"; } /* PRO */
|
|
112
|
+
.zf-vertex::before { content: "\e304"; } /* PRO */
|
|
113
|
+
|
|
114
|
+
.zf-ceres::before { content: "\e400"; } /* PRO */
|
|
115
|
+
.zf-pallas::before { content: "\e402"; } /* PRO */
|
|
116
|
+
.zf-juno::before { content: "\e403"; } /* PRO */
|
|
117
|
+
.zf-vesta-1::before { content: "\e404"; } /* PRO */
|
|
118
|
+
.zf-vesta-2::before { content: "\e405"; } /* PRO */
|
|
119
|
+
.zf-comet::before { content: "\e406"; } /* PRO */
|
|
120
|
+
.zf-sedna::before { content: "\e407"; } /* PRO */
|
|
121
|
+
.zf-makemake::before { content: "\e408"; } /* PRO */
|
|
122
|
+
.zf-haumea::before { content: "\e409"; } /* PRO */
|
|
123
|
+
.zf-proserpine::before { content: "\e40a"; } /* PRO */
|
|
124
|
+
.zf-hygiea::before { content: "\e40b"; } /* PRO */
|
|
125
|
+
.zf-eris-1::before { content: "\e40c"; } /* PRO */
|
|
126
|
+
.zf-eris-2::before { content: "\e40d"; } /* PRO */
|
|
127
|
+
|
|
128
|
+
.zf-imum-coeli::before { content: "\e50e"; } /* PRO */
|
|
129
|
+
.zf-descendant::before { content: "\e50f"; } /* PRO */
|
|
130
|
+
|
|
131
|
+
.zf-semi-sextile::before { content: "\e700"; } /* PRO */
|
|
132
|
+
.zf-inconjunct::before { content: "\e701"; } /* PRO */
|
|
133
|
+
.zf-semi-square::before { content: "\e702"; } /* PRO */
|
|
134
|
+
.zf-septile::before { content: "\e703"; } /* PRO */
|
|
135
|
+
.zf-sesquiquadrate::before { content: "\e704"; } /* PRO */
|
|
136
|
+
.zf-quintile-2::before { content: "\e705"; } /* PRO */
|
|
137
|
+
.zf-quintile::before { content: "\e706"; } /* PRO */
|
|
138
|
+
.zf-biquintile::before { content: "\e707"; } /* PRO */
|
|
139
|
+
.zf-biquintile-2::before { content: "\e708"; } /* PRO */
|
|
140
|
+
.zf-novile::before { content: "\e709"; } /* PRO */
|
|
141
|
+
.zf-parallel::before { content: "\e70a"; } /* PRO */
|
|
142
|
+
.zf-contra-parallel::before { content: "\e70b"; } /* PRO */
|
|
143
|
+
.zf-decile::before { content: "\e70c"; } /* PRO */
|
|
144
|
+
|
|
145
|
+
.zf-element-fire::before { content: "\e800"; } /* PRO */
|
|
146
|
+
.zf-element-air::before { content: "\e801"; } /* PRO */
|
|
147
|
+
.zf-element-earth::before { content: "\e802"; } /* PRO */
|
|
148
|
+
.zf-element-water::before { content: "\e803"; } /* PRO */
|
|
149
|
+
|
|
150
|
+
.zf-direct::before { content: "\e900"; } /* PRO */
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Zodiac Fonts — free astrology icon font (55 free + 46 PRO stubs)
|
|
3
|
+
* SIL Open Font License 1.1 · https://www.zodiacfonts.com
|
|
4
|
+
* Generated from glyphs.json — do not edit by hand.
|
|
5
|
+
*/@font-face{font-family:Zodiac Fonts;src:url(../fonts/ZodiacFontFREE.woff2) format("woff2");font-weight:400;font-style:normal;font-display:block;unicode-range:U+E000,U+E001,U+E002,U+E004,U+E005,U+E006,U+E007,U+E008,U+E009,U+E00A,U+E00B,U+E00C,U+E100,U+E101,U+E102,U+E103,U+E104,U+E105,U+E106,U+E107,U+E108,U+E10A,U+E10B,U+E204,U+E205,U+E206,U+E207,U+E208,U+E209,U+E20A,U+E20B,U+E300,U+E301,U+E302,U+E401,U+E500,U+E501,U+E502,U+E503,U+E504,U+E505,U+E506,U+E507,U+E508,U+E509,U+E50A,U+E50B,U+E50C,U+E50D,U+E600,U+E601,U+E602,U+E603,U+E604,U+E901}.zf{font-family:Zodiac Fonts;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;display:inline-block;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.zf-aries:before{content:"\e000"}.zf-cancer:before{content:"\e001"}.zf-libra:before{content:"\e002"}.zf-capricorn:before{content:"\e004"}.zf-taurus:before{content:"\e005"}.zf-leo:before{content:"\e006"}.zf-scorpio:before{content:"\e007"}.zf-aquarius:before{content:"\e008"}.zf-gemini:before{content:"\e009"}.zf-virgo:before{content:"\e00a"}.zf-sagittarius:before{content:"\e00b"}.zf-pisces:before{content:"\e00c"}.zf-earth:before{content:"\e100"}.zf-sun:before{content:"\e101"}.zf-moon:before{content:"\e102"}.zf-mercury:before{content:"\e103"}.zf-venus:before{content:"\e104"}.zf-mars:before{content:"\e105"}.zf-jupiter:before{content:"\e106"}.zf-saturn:before{content:"\e107"}.zf-uranus:before{content:"\e108"}.zf-neptune:before{content:"\e10a"}.zf-pluto:before{content:"\e10b"}.zf-new-moon:before{content:"\e204"}.zf-waxing-crescent:before{content:"\e205"}.zf-first-quarter:before{content:"\e206"}.zf-waxing-gibbous:before{content:"\e207"}.zf-full-moon:before{content:"\e208"}.zf-waning-gibbous:before{content:"\e209"}.zf-last-quarter:before{content:"\e20a"}.zf-waning-crescent:before{content:"\e20b"}.zf-north-node:before{content:"\e300"}.zf-south-node:before{content:"\e301"}.zf-lilith:before{content:"\e302"}.zf-chiron:before{content:"\e401"}.zf-house-one:before{content:"\e500"}.zf-house-two:before{content:"\e501"}.zf-house-three:before{content:"\e502"}.zf-house-four:before{content:"\e503"}.zf-house-five:before{content:"\e504"}.zf-house-six:before{content:"\e505"}.zf-house-seven:before{content:"\e506"}.zf-house-eight:before{content:"\e507"}.zf-house-nine:before{content:"\e508"}.zf-house-ten:before{content:"\e509"}.zf-house-eleven:before{content:"\e50a"}.zf-house-twelve:before{content:"\e50b"}.zf-ascendant:before{content:"\e50c"}.zf-medium-coeli:before{content:"\e50d"}.zf-conjunction:before{content:"\e600"}.zf-opposition:before{content:"\e601"}.zf-square:before{content:"\e602"}.zf-trine:before{content:"\e603"}.zf-sextile:before{content:"\e604"}.zf-retrograde:before{content:"\e901"}.zf-capricorn-1:before{content:"\e003"}.zf-ophiuchus:before{content:"\e00d"}.zf-sign-cardinal:before{content:"\e00e"}.zf-sign-fixed:before{content:"\e00f"}.zf-sign-mutable:before{content:"\e010"}.zf-uranus-2:before{content:"\e109"}.zf-pluto-2:before{content:"\e10c"}.zf-solar-eclipse-1:before{content:"\e200"}.zf-lunar-eclipse-1:before{content:"\e201"}.zf-solar-eclipse-2:before{content:"\e202"}.zf-lunar-eclipse-2:before{content:"\e203"}.zf-wheel-of-fortune:before{content:"\e303"}.zf-vertex:before{content:"\e304"}.zf-ceres:before{content:"\e400"}.zf-pallas:before{content:"\e402"}.zf-juno:before{content:"\e403"}.zf-vesta-1:before{content:"\e404"}.zf-vesta-2:before{content:"\e405"}.zf-comet:before{content:"\e406"}.zf-sedna:before{content:"\e407"}.zf-makemake:before{content:"\e408"}.zf-haumea:before{content:"\e409"}.zf-proserpine:before{content:"\e40a"}.zf-hygiea:before{content:"\e40b"}.zf-eris-1:before{content:"\e40c"}.zf-eris-2:before{content:"\e40d"}.zf-imum-coeli:before{content:"\e50e"}.zf-descendant:before{content:"\e50f"}.zf-semi-sextile:before{content:"\e700"}.zf-inconjunct:before{content:"\e701"}.zf-semi-square:before{content:"\e702"}.zf-septile:before{content:"\e703"}.zf-sesquiquadrate:before{content:"\e704"}.zf-quintile-2:before{content:"\e705"}.zf-quintile:before{content:"\e706"}.zf-biquintile:before{content:"\e707"}.zf-biquintile-2:before{content:"\e708"}.zf-novile:before{content:"\e709"}.zf-parallel:before{content:"\e70a"}.zf-contra-parallel:before{content:"\e70b"}.zf-decile:before{content:"\e70c"}.zf-element-fire:before{content:"\e800"}.zf-element-air:before{content:"\e801"}.zf-element-earth:before{content:"\e802"}.zf-element-water:before{content:"\e803"}.zf-direct:before{content:"\e900"}
|
|
Binary file
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* zodiac-fonts.js — Zodiac Fonts companion script
|
|
3
|
+
* Part of Zodiac Fonts · https://www.zodiacfonts.com
|
|
4
|
+
* Generated — do not edit by hand.
|
|
5
|
+
*
|
|
6
|
+
* Usage (plain HTML / SSG — runs automatically on DOMContentLoaded):
|
|
7
|
+
* <script type="module" src="zodiac-fonts.js"></script>
|
|
8
|
+
*
|
|
9
|
+
* Usage (SPA — React, Vue, Angular — call inside your mount lifecycle):
|
|
10
|
+
* import { checkZodiacGlyphs } from './zodiac-fonts.js';
|
|
11
|
+
* checkZodiacGlyphs();
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
/** Slugs of all PRO glyphs (generated from glyphs-list.json). */
|
|
15
|
+
const PRO_SLUGS = new Set(["capricorn-1", "ophiuchus", "sign-cardinal", "sign-fixed", "sign-mutable", "uranus-2", "pluto-2", "solar-eclipse-1", "lunar-eclipse-1", "solar-eclipse-2", "lunar-eclipse-2", "wheel-of-fortune", "vertex", "ceres", "pallas", "juno", "vesta-1", "vesta-2", "comet", "sedna", "makemake", "haumea", "proserpine", "hygiea", "eris-1", "eris-2", "imum-coeli", "descendant", "semi-sextile", "inconjunct", "semi-square", "septile", "sesquiquadrate", "quintile-2", "quintile", "biquintile", "biquintile-2", "novile", "parallel", "contra-parallel", "decile", "element-fire", "element-air", "element-earth", "element-water", "direct"]);
|
|
16
|
+
const DOCS_URL = 'https://www.zodiacfonts.com/documentation';
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* Scans the document for elements using PRO glyph classes and emits a
|
|
20
|
+
* console warning for each one found. Safe to call multiple times.
|
|
21
|
+
* No-op in SSR / non-browser environments.
|
|
22
|
+
*/
|
|
23
|
+
export function checkZodiacGlyphs() {
|
|
24
|
+
if (typeof document === 'undefined') return; // SSR guard
|
|
25
|
+
document.querySelectorAll('.zf').forEach(function (el) {
|
|
26
|
+
el.classList.forEach(function (cls) {
|
|
27
|
+
if (cls.startsWith('zf-') && PRO_SLUGS.has(cls.slice(3))) {
|
|
28
|
+
console.warn(
|
|
29
|
+
'[Zodiac Fonts] PRO glyph detected: .' + cls + '\n' +
|
|
30
|
+
' This glyph requires a Pro license — it will not render with the FREE font.\n' +
|
|
31
|
+
' Self-host ZodiacFontPRO.woff2 after purchasing a Pro license.\n' +
|
|
32
|
+
' \u2192 ' + DOCS_URL,
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Auto-run on plain HTML pages — no adaptor effort needed.
|
|
40
|
+
// In bundled SPA apps, call checkZodiacGlyphs() manually inside your
|
|
41
|
+
// framework's mount lifecycle (useEffect, onMounted, ngOnInit, etc.).
|
|
42
|
+
if (typeof document !== 'undefined') {
|
|
43
|
+
var run = function () { checkZodiacGlyphs(); };
|
|
44
|
+
if (document.readyState === 'loading') {
|
|
45
|
+
document.addEventListener('DOMContentLoaded', run);
|
|
46
|
+
} else {
|
|
47
|
+
run(); // script loaded after DOM is ready (e.g. deferred or dynamic import)
|
|
48
|
+
}
|
|
49
|
+
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
const i=new Set(["capricorn-1","ophiuchus","sign-cardinal","sign-fixed","sign-mutable","uranus-2","pluto-2","solar-eclipse-1","lunar-eclipse-1","solar-eclipse-2","lunar-eclipse-2","wheel-of-fortune","vertex","ceres","pallas","juno","vesta-1","vesta-2","comet","sedna","makemake","haumea","proserpine","hygiea","eris-1","eris-2","imum-coeli","descendant","semi-sextile","inconjunct","semi-square","septile","sesquiquadrate","quintile-2","quintile","biquintile","biquintile-2","novile","parallel","contra-parallel","decile","element-fire","element-air","element-earth","element-water","direct"]),a="https://www.zodiacfonts.com/documentation";export function checkZodiacGlyphs(){typeof document>"u"||document.querySelectorAll(".zf").forEach(function(t){t.classList.forEach(function(e){e.startsWith("zf-")&&i.has(e.slice(3))&&console.warn("[Zodiac Fonts] PRO glyph detected: ."+e+`
|
|
2
|
+
This glyph requires a Pro license \u2014 it will not render with the FREE font.
|
|
3
|
+
Self-host ZodiacFontPRO.woff2 after purchasing a Pro license.
|
|
4
|
+
\u2192 `+a)})})}if(typeof document<"u"){var n=function(){checkZodiacGlyphs()};document.readyState==="loading"?document.addEventListener("DOMContentLoaded",n):n()}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "zodiacfonts",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.1.1",
|
|
4
4
|
"description": "Free astrology icons & symbols — 55 hand-crafted, currentColor-ready SVG glyphs (zodiac signs, planets, houses, aspects, lunar phases). Part of Zodiac Fonts.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"astrology",
|
|
@@ -28,10 +28,27 @@
|
|
|
28
28
|
"author": "Zodiac Fonts (https://www.zodiacfonts.com)",
|
|
29
29
|
"type": "module",
|
|
30
30
|
"files": [
|
|
31
|
+
"fonts",
|
|
31
32
|
"icons",
|
|
33
|
+
"css",
|
|
34
|
+
"js",
|
|
35
|
+
"scss",
|
|
32
36
|
"glyphs.json",
|
|
33
37
|
"OFL.txt",
|
|
38
|
+
"CHANGELOG.md",
|
|
34
39
|
"README.md"
|
|
35
40
|
],
|
|
36
|
-
"
|
|
41
|
+
"exports": {
|
|
42
|
+
"./css": "./css/zodiac-fonts.css",
|
|
43
|
+
"./css/min": "./css/zodiac-fonts.min.css",
|
|
44
|
+
"./js": "./js/zodiac-fonts.js",
|
|
45
|
+
"./scss": "./scss/zodiac-fonts.scss",
|
|
46
|
+
"./glyphs.json": "./glyphs.json",
|
|
47
|
+
"./icons/*": "./icons/*",
|
|
48
|
+
"./fonts/*": "./fonts/*"
|
|
49
|
+
},
|
|
50
|
+
"sideEffects": [
|
|
51
|
+
"**/*.css",
|
|
52
|
+
"**/*.scss"
|
|
53
|
+
]
|
|
37
54
|
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
// zodiac-fonts.scss — Zodiac Fonts Sass source
|
|
2
|
+
// Part of Zodiac Fonts · https://www.zodiacfonts.com
|
|
3
|
+
// Generated from glyphs.json — do not edit by hand.
|
|
4
|
+
//
|
|
5
|
+
// Usage with a bundler (Vite, webpack, Angular CLI, etc.):
|
|
6
|
+
// @use 'zodiacfonts/scss'; // default font path
|
|
7
|
+
//
|
|
8
|
+
// Override the font path before importing:
|
|
9
|
+
// $zf-font-path: '/your/assets/ZodiacFontFREE.woff2';
|
|
10
|
+
// @use 'zodiacfonts/scss';
|
|
11
|
+
//
|
|
12
|
+
// Available variables (all `!default`, override before @use):
|
|
13
|
+
// $zf-font-path Path to ZodiacFontFREE.woff2 (default: relative to this file)
|
|
14
|
+
// $zf-font-family Font-family name registered with @font-face
|
|
15
|
+
|
|
16
|
+
$zf-font-path: '../fonts/ZodiacFontFREE.woff2' !default;
|
|
17
|
+
$zf-font-family: 'Zodiac Fonts' !default;
|
|
18
|
+
|
|
19
|
+
@font-face {
|
|
20
|
+
font-family: $zf-font-family;
|
|
21
|
+
src: url(#{$zf-font-path}) format('woff2');
|
|
22
|
+
font-weight: 400;
|
|
23
|
+
font-style: normal;
|
|
24
|
+
font-display: block;
|
|
25
|
+
unicode-range: U+E000, U+E001, U+E002, U+E004, U+E005, U+E006, U+E007, U+E008, U+E009, U+E00A, U+E00B, U+E00C, U+E100, U+E101, U+E102, U+E103, U+E104, U+E105, U+E106, U+E107, U+E108, U+E10A, U+E10B, U+E204, U+E205, U+E206, U+E207, U+E208, U+E209, U+E20A, U+E20B, U+E300, U+E301, U+E302, U+E401, U+E500, U+E501, U+E502, U+E503, U+E504, U+E505, U+E506, U+E507, U+E508, U+E509, U+E50A, U+E50B, U+E50C, U+E50D, U+E600, U+E601, U+E602, U+E603, U+E604, U+E901;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
.zf {
|
|
29
|
+
font-family: $zf-font-family;
|
|
30
|
+
font-style: normal;
|
|
31
|
+
font-weight: 400;
|
|
32
|
+
font-variant: normal;
|
|
33
|
+
text-transform: none;
|
|
34
|
+
line-height: 1;
|
|
35
|
+
display: inline-block;
|
|
36
|
+
-webkit-font-smoothing: antialiased;
|
|
37
|
+
-moz-osx-font-smoothing: grayscale;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.zf-aries::before { content: "\e000"; }
|
|
41
|
+
.zf-cancer::before { content: "\e001"; }
|
|
42
|
+
.zf-libra::before { content: "\e002"; }
|
|
43
|
+
.zf-capricorn::before { content: "\e004"; }
|
|
44
|
+
.zf-taurus::before { content: "\e005"; }
|
|
45
|
+
.zf-leo::before { content: "\e006"; }
|
|
46
|
+
.zf-scorpio::before { content: "\e007"; }
|
|
47
|
+
.zf-aquarius::before { content: "\e008"; }
|
|
48
|
+
.zf-gemini::before { content: "\e009"; }
|
|
49
|
+
.zf-virgo::before { content: "\e00a"; }
|
|
50
|
+
.zf-sagittarius::before { content: "\e00b"; }
|
|
51
|
+
.zf-pisces::before { content: "\e00c"; }
|
|
52
|
+
|
|
53
|
+
.zf-earth::before { content: "\e100"; }
|
|
54
|
+
.zf-sun::before { content: "\e101"; }
|
|
55
|
+
.zf-moon::before { content: "\e102"; }
|
|
56
|
+
.zf-mercury::before { content: "\e103"; }
|
|
57
|
+
.zf-venus::before { content: "\e104"; }
|
|
58
|
+
.zf-mars::before { content: "\e105"; }
|
|
59
|
+
.zf-jupiter::before { content: "\e106"; }
|
|
60
|
+
.zf-saturn::before { content: "\e107"; }
|
|
61
|
+
.zf-uranus::before { content: "\e108"; }
|
|
62
|
+
.zf-neptune::before { content: "\e10a"; }
|
|
63
|
+
.zf-pluto::before { content: "\e10b"; }
|
|
64
|
+
|
|
65
|
+
.zf-new-moon::before { content: "\e204"; }
|
|
66
|
+
.zf-waxing-crescent::before { content: "\e205"; }
|
|
67
|
+
.zf-first-quarter::before { content: "\e206"; }
|
|
68
|
+
.zf-waxing-gibbous::before { content: "\e207"; }
|
|
69
|
+
.zf-full-moon::before { content: "\e208"; }
|
|
70
|
+
.zf-waning-gibbous::before { content: "\e209"; }
|
|
71
|
+
.zf-last-quarter::before { content: "\e20a"; }
|
|
72
|
+
.zf-waning-crescent::before { content: "\e20b"; }
|
|
73
|
+
|
|
74
|
+
.zf-north-node::before { content: "\e300"; }
|
|
75
|
+
.zf-south-node::before { content: "\e301"; }
|
|
76
|
+
.zf-lilith::before { content: "\e302"; }
|
|
77
|
+
|
|
78
|
+
.zf-chiron::before { content: "\e401"; }
|
|
79
|
+
|
|
80
|
+
.zf-house-one::before { content: "\e500"; }
|
|
81
|
+
.zf-house-two::before { content: "\e501"; }
|
|
82
|
+
.zf-house-three::before { content: "\e502"; }
|
|
83
|
+
.zf-house-four::before { content: "\e503"; }
|
|
84
|
+
.zf-house-five::before { content: "\e504"; }
|
|
85
|
+
.zf-house-six::before { content: "\e505"; }
|
|
86
|
+
.zf-house-seven::before { content: "\e506"; }
|
|
87
|
+
.zf-house-eight::before { content: "\e507"; }
|
|
88
|
+
.zf-house-nine::before { content: "\e508"; }
|
|
89
|
+
.zf-house-ten::before { content: "\e509"; }
|
|
90
|
+
.zf-house-eleven::before { content: "\e50a"; }
|
|
91
|
+
.zf-house-twelve::before { content: "\e50b"; }
|
|
92
|
+
.zf-ascendant::before { content: "\e50c"; }
|
|
93
|
+
.zf-medium-coeli::before { content: "\e50d"; }
|
|
94
|
+
|
|
95
|
+
.zf-conjunction::before { content: "\e600"; }
|
|
96
|
+
.zf-opposition::before { content: "\e601"; }
|
|
97
|
+
.zf-square::before { content: "\e602"; }
|
|
98
|
+
.zf-trine::before { content: "\e603"; }
|
|
99
|
+
.zf-sextile::before { content: "\e604"; }
|
|
100
|
+
|
|
101
|
+
.zf-retrograde::before { content: "\e901"; }
|
|
102
|
+
|
|
103
|
+
// ─── PRO glyphs ────────────────────────────────────────────────────────────
|
|
104
|
+
// These classes are part of the full Zodiac Fonts API. They will NOT render
|
|
105
|
+
// with the free font. Purchase a Pro license and self-host ZodiacFontPRO.woff2.
|
|
106
|
+
// → https://www.zodiacfonts.com/documentation
|
|
107
|
+
// ──────────────────────────────────────────────────────────────────────────
|
|
108
|
+
|
|
109
|
+
.zf-capricorn-1::before { content: "\e003"; } // PRO
|
|
110
|
+
.zf-ophiuchus::before { content: "\e00d"; } // PRO
|
|
111
|
+
.zf-sign-cardinal::before { content: "\e00e"; } // PRO
|
|
112
|
+
.zf-sign-fixed::before { content: "\e00f"; } // PRO
|
|
113
|
+
.zf-sign-mutable::before { content: "\e010"; } // PRO
|
|
114
|
+
|
|
115
|
+
.zf-uranus-2::before { content: "\e109"; } // PRO
|
|
116
|
+
.zf-pluto-2::before { content: "\e10c"; } // PRO
|
|
117
|
+
|
|
118
|
+
.zf-solar-eclipse-1::before { content: "\e200"; } // PRO
|
|
119
|
+
.zf-lunar-eclipse-1::before { content: "\e201"; } // PRO
|
|
120
|
+
.zf-solar-eclipse-2::before { content: "\e202"; } // PRO
|
|
121
|
+
.zf-lunar-eclipse-2::before { content: "\e203"; } // PRO
|
|
122
|
+
|
|
123
|
+
.zf-wheel-of-fortune::before { content: "\e303"; } // PRO
|
|
124
|
+
.zf-vertex::before { content: "\e304"; } // PRO
|
|
125
|
+
|
|
126
|
+
.zf-ceres::before { content: "\e400"; } // PRO
|
|
127
|
+
.zf-pallas::before { content: "\e402"; } // PRO
|
|
128
|
+
.zf-juno::before { content: "\e403"; } // PRO
|
|
129
|
+
.zf-vesta-1::before { content: "\e404"; } // PRO
|
|
130
|
+
.zf-vesta-2::before { content: "\e405"; } // PRO
|
|
131
|
+
.zf-comet::before { content: "\e406"; } // PRO
|
|
132
|
+
.zf-sedna::before { content: "\e407"; } // PRO
|
|
133
|
+
.zf-makemake::before { content: "\e408"; } // PRO
|
|
134
|
+
.zf-haumea::before { content: "\e409"; } // PRO
|
|
135
|
+
.zf-proserpine::before { content: "\e40a"; } // PRO
|
|
136
|
+
.zf-hygiea::before { content: "\e40b"; } // PRO
|
|
137
|
+
.zf-eris-1::before { content: "\e40c"; } // PRO
|
|
138
|
+
.zf-eris-2::before { content: "\e40d"; } // PRO
|
|
139
|
+
|
|
140
|
+
.zf-imum-coeli::before { content: "\e50e"; } // PRO
|
|
141
|
+
.zf-descendant::before { content: "\e50f"; } // PRO
|
|
142
|
+
|
|
143
|
+
.zf-semi-sextile::before { content: "\e700"; } // PRO
|
|
144
|
+
.zf-inconjunct::before { content: "\e701"; } // PRO
|
|
145
|
+
.zf-semi-square::before { content: "\e702"; } // PRO
|
|
146
|
+
.zf-septile::before { content: "\e703"; } // PRO
|
|
147
|
+
.zf-sesquiquadrate::before { content: "\e704"; } // PRO
|
|
148
|
+
.zf-quintile-2::before { content: "\e705"; } // PRO
|
|
149
|
+
.zf-quintile::before { content: "\e706"; } // PRO
|
|
150
|
+
.zf-biquintile::before { content: "\e707"; } // PRO
|
|
151
|
+
.zf-biquintile-2::before { content: "\e708"; } // PRO
|
|
152
|
+
.zf-novile::before { content: "\e709"; } // PRO
|
|
153
|
+
.zf-parallel::before { content: "\e70a"; } // PRO
|
|
154
|
+
.zf-contra-parallel::before { content: "\e70b"; } // PRO
|
|
155
|
+
.zf-decile::before { content: "\e70c"; } // PRO
|
|
156
|
+
|
|
157
|
+
.zf-element-fire::before { content: "\e800"; } // PRO
|
|
158
|
+
.zf-element-air::before { content: "\e801"; } // PRO
|
|
159
|
+
.zf-element-earth::before { content: "\e802"; } // PRO
|
|
160
|
+
.zf-element-water::before { content: "\e803"; } // PRO
|
|
161
|
+
|
|
162
|
+
.zf-direct::before { content: "\e900"; } // PRO
|