Skip to content
This repository was archived by the owner on Jul 23, 2026. It is now read-only.
This repository was archived by the owner on Jul 23, 2026. It is now read-only.

[create-theme]: Prayer Time #2115

Description

@selimsezr

Name

Prayer Time

Description

A calm glassy Zen interface inspired by the Vakit Takibi prayer times extension.

Homepage

https://github.com/selimsezr/zen_salah_extension/tree/main/zen-theme

Image

https://github.com/selimsezr/zen_salah_extension/tree/main/zen-theme

Type

  • JSON Color Theme

Theme Styles

/*
 * Vakit Takibi — Zen Browser Mod
 * A calm, glassy browser chrome inspired by the Vakit Takibi extension.
 */

:root {
  --vakit-accent: #0ea5e9;
  --vakit-accent-soft: color-mix(in srgb, var(--vakit-accent) 18%, transparent);
  --vakit-accent-border: color-mix(in srgb, var(--vakit-accent) 38%, transparent);
  --vakit-surface: light-dark(rgba(248, 251, 255, 0.84), rgba(10, 23, 40, 0.82));
  --vakit-surface-raised: light-dark(rgba(255, 255, 255, 0.94), rgba(15, 30, 50, 0.94));
  --vakit-border: light-dark(rgba(30, 64, 175, 0.14), rgba(148, 163, 184, 0.18));
  --vakit-shadow: light-dark(rgba(30, 64, 175, 0.12), rgba(0, 0, 0, 0.34));
  --vakit-radius: 14px;
}

@media (-moz-pref("mod.vakit-takibi.accent", "teal")) {
  :root { --vakit-accent: #14b8a6; }
}

@media (-moz-pref("mod.vakit-takibi.accent", "indigo")) {
  :root { --vakit-accent: #6366f1; }
}

@media (-moz-pref("mod.vakit-takibi.accent", "amber")) {
  :root { --vakit-accent: #f59e0b; }
}

/* Main browser surfaces */
#navigator-toolbox,
#zen-sidebar-top-buttons,
#zen-sidebar-foot-buttons {
  background-color: transparent !important;
}

#navigator-toolbox {
  color: light-dark(#172554, #eef2ff) !important;
}

#nav-bar,
#PersonalToolbar {
  border-color: var(--vakit-border) !important;
}

.browserSidebarContainer,
#sidebar-box {
  border: 1px solid var(--vakit-border) !important;
  border-radius: var(--vakit-radius) !important;
  background: var(--vakit-surface) !important;
  box-shadow: 0 10px 28px var(--vakit-shadow) !important;
}

/* URL bar */
#urlbar-background {
  border: 1px solid var(--vakit-border) !important;
  border-radius: 13px !important;
  background: var(--vakit-surface-raised) !important;
  box-shadow: 0 5px 16px var(--vakit-shadow) !important;
  backdrop-filter: blur(18px) saturate(1.25) !important;
}

#urlbar[focused="true"] > #urlbar-background,
#urlbar[open] > #urlbar-background {
  border-color: var(--vakit-accent-border) !important;
  box-shadow:
    0 0 0 3px var(--vakit-accent-soft),
    0 10px 24px var(--vakit-shadow) !important;
}

.urlbarView-row[selected] > .urlbarView-row-inner,
.urlbarView-row:hover > .urlbarView-row-inner {
  border-radius: 10px !important;
  background: var(--vakit-accent-soft) !important;
}

/* Tabs */
.tabbrowser-tab .tab-background {
  border: 1px solid transparent !important;
  border-radius: 11px !important;
  transition: background-color 160ms ease, border-color 160ms ease, box-shadow 160ms ease !important;
}

.tabbrowser-tab:hover .tab-background {
  border-color: var(--vakit-border) !important;
  background: var(--vakit-surface) !important;
}

.tabbrowser-tab[selected] .tab-background {
  border-color: var(--vakit-accent-border) !important;
  background: var(--vakit-accent-soft) !important;
  box-shadow: inset 3px 0 0 var(--vakit-accent), 0 5px 14px var(--vakit-shadow) !important;
}

.tabbrowser-tab[selected] .tab-label {
  font-weight: 700 !important;
}

.tabbrowser-tab[selected] .tab-icon-image,
.tabbrowser-tab[selected] .tab-icon-overlay {
  filter: saturate(1.15) !important;
}

/* Toolbar controls and menus */
.toolbarbutton-1 > .toolbarbutton-icon,
.toolbarbutton-1 > .toolbarbutton-badge-stack,
#zen-sidebar-top-buttons .toolbarbutton-1,
#zen-sidebar-foot-buttons .toolbarbutton-1 {
  border-radius: 10px !important;
  transition: background-color 150ms ease, transform 150ms ease !important;
}

.toolbarbutton-1:not([disabled]):hover > .toolbarbutton-icon,
.toolbarbutton-1:not([disabled]):hover > .toolbarbutton-badge-stack,
#zen-sidebar-top-buttons .toolbarbutton-1:hover,
#zen-sidebar-foot-buttons .toolbarbutton-1:hover {
  background: var(--vakit-accent-soft) !important;
}

menupopup,
panel,
.panel-arrowcontent {
  --panel-background: var(--vakit-surface-raised) !important;
  --panel-border-color: var(--vakit-border) !important;
  --panel-border-radius: var(--vakit-radius) !important;
}

menupopup,
.panel-arrowcontent {
  border-radius: var(--vakit-radius) !important;
  box-shadow: 0 14px 34px var(--vakit-shadow) !important;
  backdrop-filter: blur(20px) saturate(1.25) !important;
}

menuitem:hover,
menu:hover,
.subviewbutton:hover {
  border-radius: 9px !important;
  background: var(--vakit-accent-soft) !important;
}

/* Optional denser tabs */
@media (-moz-pref("mod.vakit-takibi.compact-tabs")) {
  .tabbrowser-tab {
    min-height: 30px !important;
  }

  .tabbrowser-tab .tab-content {
    padding-block: 2px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  .tabbrowser-tab .tab-background,
  .toolbarbutton-1 > .toolbarbutton-icon,
  .toolbarbutton-1 > .toolbarbutton-badge-stack {
    transition: none !important;
  }
}

Readme

# Prayer Times – Browser Extension

**Prayer Times** is a lightweight extension for Zen Browser and Firefox that tracks Islamic prayer times based on your location and shows a visual countdown to the next salah in the toolbar.

The extension runs in the background and updates every minute.

Zen CSS mod: [zen-theme/README.md](zen-theme/README.md)

---

## Screenshots

| Light theme | Dark theme | Prayer times and location |
|:---:|:---:|:---:|
| <img src="screenshots/popup-light.png" alt="Prayer Times popup in light theme" width="240"> | <img src="screenshots/popup-dark.png" alt="Prayer Times popup in dark theme" width="240"> | <img src="screenshots/prayer-times-and-location.png" alt="Prayer times and location selection" width="240"> |

---

## Features

- Countdown to the next prayer time
- Minimal progress icon in the toolbar
- Automatic updates every minute
- Location selection by country, province, and district
- Daily caching for fast performance
- Works without opening the popup
- English and Turkish UI (follows browser language)

---

## How It Works

- Prayer times are fetched from [prayertimes.api.abdus.dev](https://prayertimes.api.abdus.dev) (official Diyanet data)
- Daily times are cached in local storage
- The `alarms` API triggers updates every minute
- Icon fill reflects progress until the next prayer
- Tooltip shows remaining time (e.g. "2 h 30 min left")

---

## Install in Zen Browser

1. Clone this repository:
   
   git clone https://github.com/selimsezr/zen_salah_extension.git
   
2. Open `about:debugging` in Zen Browser
3. Click **This Zen** (or **This Firefox**)
4. Click **Load Temporary Add-on**
5. Select the `manifest.json` file from the cloned folder

---

## Publish to Zen Mods / Add-ons

This project is a **WebExtension** (not a CSS theme mod). To publish it:

1. **Firefox Add-ons (AMO)** – Recommended for wide distribution. Submit the packaged `.zip` at [addons.mozilla.org](https://addons.mozilla.org).
2. **Self-hosted** – Share the repository or a release `.zip` for manual installation.

For the Zen Mods store (`zen-browser.app/mods`), only CSS/JS theme mods are accepted. This extension should be published as an add-on instead.

### Publishing checklist

- [x] English and Turkish localization (`_locales/en`, `_locales/tr`)
- [x] Extension name and description in `messages.json`
- [x] `default_locale` set in `manifest.json`
- [ ] Add icons (48px and 96px recommended for AMO)
- [ ] Create a release `.zip` excluding `.git`

Package for submission:

zip -r prayer-times.zip . -x "*.git*" -x "*.DS_Store"


---

## Language

The UI language follows your browser setting:

| Browser language | UI |
|------------------|-----|
| `tr`, `tr-TR`    | Turkish |
| Everything else | English (default) |

---

## License

See [LICENSE](LICENSE).

Preferences

[
  {
    "property": "mod.vakit-takibi.accent",
    "label": "Accent color",
    "type": "dropdown",
    "defaultValue": "sky",
    "options": [
      { "label": "Sky", "value": "sky" },
      { "label": "Teal", "value": "teal" },
      { "label": "Indigo", "value": "indigo" },
      { "label": "Amber", "value": "amber" }
    ]
  },
  {
    "property": "mod.vakit-takibi.compact-tabs",
    "label": "Use compact tabs",
    "type": "checkbox",
    "defaultValue": false
  }
]

Metadata

Metadata

Assignees

No one assigned

    Labels

    new-themeSubmit a theme to be added to the theme library

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions