Packages
mob
0.5.17
0.7.20
0.7.19
0.7.18
0.7.17
0.7.16
0.7.15
0.7.14
0.7.13
0.7.12
0.7.11
0.7.10
0.7.9
0.7.8
0.7.7
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.26
0.6.25
0.6.24
0.6.23
0.6.22
0.6.21
0.6.20
0.6.19
0.6.18
0.6.17
0.6.16
0.6.15
0.6.14
0.6.13
0.6.12
0.6.11
0.6.10
0.6.9
0.6.8
0.6.7
0.6.6
0.6.5
0.6.2
0.6.1
0.6.0
0.5.18
0.5.17
0.5.16
0.5.15
0.5.14
0.5.11
0.5.10
0.5.7
0.5.6
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.0
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.0
0.1.0
BEAM-on-device mobile framework for Elixir
Current section
Files
Jump to
Current section
Files
lib/mob/theme/obsidian.ex
defmodule Mob.Theme.Obsidian do
@moduledoc """
Obsidian theme for Mob — deep blacks with a violet accent.
## Usage
defmodule MyApp do
use Mob.App, theme: Mob.Theme.Obsidian
end
## Overrides
Pass a keyword list as the second element of a tuple to override
individual tokens while keeping the rest of the Obsidian palette:
use Mob.App, theme: {Mob.Theme.Obsidian, primary: :rose_500}
## Publishing your own theme
Any module that exports `theme/0 :: Mob.Theme.t()` works as a Mob theme.
You can publish yours as a standalone Hex package and users import it the
same way:
use Mob.App, theme: AcmeCorp.Theme.Dark
"""
@doc "Returns the compiled Obsidian theme struct."
@spec theme() :: Mob.Theme.t()
def theme do
Mob.Theme.build(
# ── Brand ──────────────────────────────────────────────────────────────
# 0xFF7C3AED
primary: :violet_600,
on_primary: :white,
# 0xFFA78BFA — lighter for accents/tags
secondary: :violet_400,
on_secondary: :white,
# ── Surfaces ───────────────────────────────────────────────────────────
# near-black, blue-tinted
background: 0xFF0D0D1A,
# lavender-tinted white
on_background: 0xFFE8E6FF,
# dark card background
surface: 0xFF16162A,
# slightly elevated card
surface_raised: 0xFF1E1E38,
on_surface: 0xFFE8E6FF,
# muted text / placeholders
muted: 0xFF6B6B8E,
# ── Utility ────────────────────────────────────────────────────────────
error: :red_400,
on_error: :white,
# subtle purple-tinted divider
border: 0xFF2D2D4A
)
end
end