You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: content/contribute/CONTRIBUTING.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,7 +1,7 @@
1
1
---
2
2
title: Contributing to Zen Browser
3
3
draft: false
4
-
lastmod: 2024-08-26
4
+
lastmod: 2025-02-07
5
5
---
6
6
7
7
Thank you for considering contributing to Zen Browser! We appreciate your time and effort in improving this project. The following is a set of guidelines for contributing to Zen Browser. These guidelines are intended to make it easier for you to get involved.
@@ -23,7 +23,7 @@ To help you get started with contributing, we have created separate guides for e
23
23
-[[www | Getting Started with Zen's Homepage Development]]
24
24
-[[docs | Getting Started with Documentation Contributions]]
25
25
-[[translation | Getting Started with Translations]]
26
-
26
+
27
27
Please follow the appropriate guide based on the repository you want to contribute to.
28
28
29
29
### Reporting Bugs
@@ -33,15 +33,15 @@ If you find a bug, please open an issue and describe the problem in detail. Incl
33
33
>[!important]
34
34
>Open the issue in it's corresponding GitHub repository:
We welcome suggestions for new features or improvements to existing ones. To suggest a feature, please start a new Github discussion in the Ideas category.
44
+
We welcome suggestions for new features or improvements to existing ones. To suggest a feature, please start a new Github discussion in the Ideas category.
45
45
*Use the correct Github Repository based on the list above*
Copy file name to clipboardExpand all lines: content/themes-store/themes-marketplace-preferences.md
+33-33Lines changed: 33 additions & 33 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,17 +1,17 @@
1
1
---
2
-
title: Themes Store Preferences ⚙️
3
-
lastmod: 2024-09-16
2
+
title: Mods Registry Preferences ⚙️
3
+
lastmod: 2025-02-07
4
4
---
5
5
6
-
The `preferences.json` file allows theme developers to define custom preferences that control the behavior and appearance of themes in the Zen Browser. Each preference is defined with a `property`, a `label`, a `type`, and optionally `options` (for dropdown preferences), `defaultValue`, `placeholder` (to configure preference placeholder) and `disabledOn` (to disable property on selected OS). The `preferences.json` file contains a list of these preference objects at its root.
6
+
The `preferences.json` file allows mod developers to define custom preferences that control the behavior and appearance of mods in the Zen Browser. Each preference is defined with a `property`, a `label`, a `type`, and optionally `options` (for dropdown preferences), `defaultValue`, `placeholder` (to configure preference placeholder) and `disabledOn` (to disable property on selected OS). The `preferences.json` file contains a list of these preference objects at its root.
7
7
8
8
## Preferences fields
9
9
10
10
### Field: `property` - Property name
11
11
12
12
The `property` field is a string that should follow Firefox's preference naming schema, similar to `about:config` entries. The `property` name can be any valid string that aligns with this schema.
13
13
14
-
For example: `theme.mytheme.background_color`
14
+
For example: `mod.mymod.background_color`
15
15
16
16
17
17
### Field: `label` - Label
@@ -35,7 +35,7 @@ The `checkbox` type allows a togglable input to enable or disable a property.
35
35
36
36
```json title="Checkbox Example"
37
37
{
38
-
"property": "theme.mytheme.enable_dark_mode",
38
+
"property": "mod.mymod.enable_dark_mode",
39
39
"label": "Enable dark mode",
40
40
"type": "checkbox"
41
41
}
@@ -47,7 +47,7 @@ The `dropdown` type allows to select a single choice on multiple options.
47
47
48
48
```json title="Dropdown Example"
49
49
{
50
-
"property": "theme.mytheme.background_color",
50
+
"property": "mod.mymod.background_color",
51
51
"label": "Background color",
52
52
"type": "dropdown",
53
53
"options": [
@@ -70,7 +70,7 @@ The `string` type is a text input that allows to insert valid css values without
70
70
71
71
```json title="String Example"
72
72
{
73
-
"property": "theme.mytheme.tab_padding",
73
+
"property": "mod.mymod.tab_padding",
74
74
"label": "Set tab padding",
75
75
"type": "string"
76
76
}
@@ -161,18 +161,18 @@ For example: `e.g: 10px`
161
161
<details>
162
162
<summary><fontweight="bold"size=4.75><b>See Full Example</b></font></summary>
163
163
164
-
Below is a full example of what a `preferences.json` file might look like with multiple preference objects in its root. Each object represents a preference defined for a theme:
164
+
Below is a full example of what a `preferences.json` file might look like with multiple preference objects in its root. Each object represents a preference defined for a mod:
165
165
166
166
```json
167
167
[
168
168
{
169
-
"property": "theme.mytheme.enable_dark_mode",
169
+
"property": "mod.mymod.enable_dark_mode",
170
170
"label": "Enable dark mode",
171
171
"type": "checkbox",
172
172
"defaultValue": true
173
173
},
174
174
{
175
-
"property": "theme.mytheme.background_color",
175
+
"property": "mod.mymod.background_color",
176
176
"label": "Background color",
177
177
"type": "dropdown",
178
178
"placeholder": "Select a color",
@@ -189,7 +189,7 @@ Below is a full example of what a `preferences.json` file might look like with m
189
189
]
190
190
},
191
191
{
192
-
"property": "theme.mytheme.show_bookmarks_bar",
192
+
"property": "mod.mymod.show_bookmarks_bar",
193
193
"label": "Show bookmarks bar",
194
194
"type": "string",
195
195
"disabledOn": ["macos"]
@@ -207,19 +207,19 @@ In this example:
207
207
208
208
---
209
209
210
-
## Using preferences in the theme's CSS
210
+
## Using preferences in the mod's CSS
211
211
212
-
Once you have defined your preferences in the `preferences.json` file, you can use them in your theme’s CSS to modify the appearance or behavior based on the user’s selections.
212
+
Once you have defined your preferences in the `preferences.json` file, you can use them in your mod’s CSS to modify the appearance or behavior based on the user’s selections.
213
213
214
214
### Checkbox Preferences
215
215
216
216
Checkbox preferences can be detected in your CSS using the `-moz-bool-pref` media query, which evaluates the boolean value (`true` or `false`) of a checkbox preference.
217
217
218
-
For example, if you have a preference to enable dark mode in your theme:
218
+
For example, if you have a preference to enable dark mode in your mod:
219
219
220
220
```json
221
221
{
222
-
"property": "theme.mytheme.enable_dark_mode",
222
+
"property": "mod.mymod.enable_dark_mode",
223
223
"label": "Enable dark mode",
224
224
"type": "checkbox"
225
225
}
@@ -228,7 +228,7 @@ For example, if you have a preference to enable dark mode in your theme:
228
228
You can use the following CSS to change the background color when the dark mode preference is enabled:
> `property` fields defined in `preferences.json` using the `"dropdown"` type will have one key difference when used in your themes CSS: **dots (`.`) in the `property` name are replaced with hyphens (`-`)**.
248
+
> `property` fields defined in `preferences.json` using the `"dropdown"` type will have one key difference when used in your mod’s CSS: **dots (`.`) in the `property` name are replaced with hyphens (`-`)**.
249
249
>
250
-
> E.g. `theme.mytheme.background_color` becomes `theme-mytheme-background_color` in the CSS file.
250
+
> E.g. `mod.mymod.background_color` becomes `mod-mymod-background_color` in the CSS file.
251
251
> This transformation ensures that the property can be used as an attribute selector or inside a media query.
252
252
253
253
For dropdown preferences, you can detect the selected value using the `:has(){:css}` CSS pseudo-class, which applies styles based on the selected attribute and value in the DOM.
@@ -256,7 +256,7 @@ For example, if you have a preference to select the background color from a drop
256
256
257
257
```json
258
258
{
259
-
"property": "theme.mytheme.background_color",
259
+
"property": "mod.mymod.background_color",
260
260
"label": "Background color",
261
261
"type": "dropdown",
262
262
"options": [
@@ -276,21 +276,21 @@ You can use the following CSS to change the background color based on the select
- The background color and text color change based on the value selected in the `background_color` dropdown.
293
-
- The selector `body:has(#theme-mytheme[background_color="value"]){:css}` checks the `background_color` attribute and applies the relevant styles based on the selected option.
293
+
- The selector `body:has(#mod-mymod[background_color="value"]){:css}` checks the `background_color` attribute and applies the relevant styles based on the selected option.
294
294
295
295
---
296
296
@@ -302,12 +302,12 @@ Suppose your `preferences.json` file includes these two preferences:
302
302
```json
303
303
[
304
304
{
305
-
"property": "theme.mytheme.enable_dark_mode",
305
+
"property": "mod.mymod.enable_dark_mode",
306
306
"label": "Enable dark mode",
307
307
"type": "checkbox"
308
308
},
309
309
{
310
-
"property": "theme.mytheme.background_color",
310
+
"property": "mod.mymod.background_color",
311
311
"label": "Background color",
312
312
"type": "dropdown",
313
313
"options": [
@@ -328,20 +328,20 @@ You can combine the CSS like this:
String preferences can be detected in your CSS using the `var(--property)` operator. The preference property is saved at `:root` level.
359
359
360
360
> [!attention]
361
-
> `property` fields defined in `preferences.json` using the `"string"` type will have one key difference when used in your themes CSS: **dots (`.`) in the `property` name are replaced with hyphens (`-`)**.
361
+
> `property` fields defined in `preferences.json` using the `"string"` type will have one key difference when used in your mod’s CSS: **dots (`.`) in the `property` name are replaced with hyphens (`-`)**.
362
362
>
363
-
> E.g. `theme.mytheme.background_color` becomes `theme-mytheme-background_color` in the CSS file.
363
+
> E.g. `mod.mymod.background_color` becomes `mod-mymod-background_color` in the CSS file.
364
364
> This transformation ensures that the property can be used as an attribute selector or inside a media query.
365
365
366
-
For example, if you have a preference to enable dark mode in your theme:
366
+
For example, if you have a preference to enable dark mode in your mod:
367
367
368
368
```json
369
369
{
370
-
"property": "theme.mytheme.background_color",
370
+
"property": "mod.mymod.background_color",
371
371
"label": "Background color",
372
372
"type": "string"
373
373
}
@@ -377,6 +377,6 @@ You can use the following CSS to change the background color when the dark mode
If you are a theme developer and would like to submit your theme, please follow these guidelines:
6
+
If you are a [mod developer] and would like to submit your mod, please follow these guidelines:
7
7
8
-
1.**Theme requirements**:
9
-
- Your theme must be compatible with Zen Browser.
10
-
- Your theme must be open-source.
11
-
- Your theme must not contain any malicious code.
12
-
- Your theme must not violate any copyright laws.
8
+
1.**Mod requirements**:
9
+
- Your mod must be compatible with Zen Browser.
10
+
- Your mod must be open-source.
11
+
- Your mod must not contain any malicious code.
12
+
- Your mod must not violate any copyright laws.
13
13
14
-
2.**Theme Validation**:
15
-
- Your theme's name must be unique and less than `25` characters.
16
-
- Your theme's description must be less than `100` characters.
17
-
- Your theme's screenshot must be a `PNG` with a size of `300x200` (it can be resized after upload).
18
-
- Your theme must contain a valid `README` describing the theme and how to use it.
19
-
- If your theme has any preferences values, they must be set in the `preferences` text area as a `JSON` object.
14
+
2.**Mod Validation**:
15
+
- Your mod's name must be unique and less than `25` characters.
16
+
- Your mod's description must be less than `100` characters.
17
+
- Your mod's screenshot must be a `PNG` with a size of `300x200` (it can be resized after upload).
18
+
- Your mod must contain a valid `README` describing the mod and how to use it.
19
+
- If your mod has any preferences values, they must be set in the `preferences` text area as a `JSON` object.
20
20
- See how preferences work [here](themes-store/themes-marketplace-preferences.md).
21
21
22
-
3.**Theme Submission**:
23
-
- To submit your theme, please create an issue [here](https://github.com/zen-browser/theme-store/issues/new?assignees=&labels=new-theme&projects=&template=create-theme.yml&title=%5Bcreate-theme%5D%3A+)
22
+
3.**Mod Submission**:
23
+
- To submit your mod, please create an issue [here](https://github.com/zen-browser/theme-store/issues/new?assignees=&labels=new-theme&projects=&template=create-theme.yml&title=%5Bcreate-theme%5D%3A+)
24
24
- Fill out the template with the required information.
25
-
- Once you have submitted your theme, it will be analyzed by a bot and a pull request will be created.
26
-
- If your theme is approved, it will be added to the Themes Marketplace.
25
+
- Once you have submitted your mod, it will be analyzed by a bot and a pull request will be created.
26
+
- If your mod is approved, it will be added to the Mods Registry.
27
27
28
-
4.**Theme Update**:
29
-
- If you would like to update your theme, please create an issue [here](https://github.com/zen-browser/theme-store/issues/new)
28
+
4.**Mod Update**:
29
+
- If you would like to update your mod, please create an issue [here](https://github.com/zen-browser/theme-store/issues/new)
30
30
- Please explain the changes you have made.
31
31
32
32
> [!info]
33
-
> Themes are automatically updated and generated by the bot. If your theme is not approved, you will receive a message with the reason why it was not approved.
33
+
> Mods are automatically updated and generated by the bot. If your mod is not approved, you will receive a message with the reason why it was not approved.
The Themes Store is a place where you can find and install themes for Zen Browser.
6
+
The Mods Registry is a place where you can find and install mods for Zen Browser.
7
7
8
-
## How to install a theme
8
+
## How to install a mod
9
9
10
10
1. Open Zen Browser.
11
-
2. Click on the theme you would like to install on the [Themes Store](https://www.zen-browser.app/themes).
11
+
2. Click on the mod you would like to install on the [Mods Registry](https://www.zen-browser.app/mods).
12
12
3. Click on the "Install" button.
13
13
14
-
## For theme developers
14
+
## For mod developers
15
15
16
-
If you are a theme developer and would like to submit your theme, please follow the instructions on the [Submission Guidelines](themes-store/themes-marketplace-submission-guidelines.md) page.
16
+
If you are a mod developer and would like to submit your mod, please follow the instructions on the [Submission Guidelines](themes-store/themes-marketplace-submission-guidelines.md) page.
0 commit comments