Packages
mob
0.3.5
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/birch.ex
defmodule Mob.Theme.Birch do
@moduledoc """
Birch theme for Mob — warm parchment surfaces with a chestnut-brown accent.
A light warm theme. Calm and readable — works well for content-heavy apps,
reading interfaces, and anywhere you want a natural, unhurried feel.
## Usage
defmodule MyApp do
use Mob.App, theme: Mob.Theme.Birch
end
## Overrides
use Mob.App, theme: {Mob.Theme.Birch, primary: :brown_400}
## 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.Light
"""
@doc "Returns the compiled Birch theme struct."
@spec theme() :: Mob.Theme.t()
def theme do
Mob.Theme.build(
# ── Brand ──────────────────────────────────────────────────────────────
primary: :brown_600, # 0xFF7C4A1E — warm chestnut
on_primary: 0xFFFFF4E8, # warm cream — readable on chestnut
secondary: 0xFF5C7A52, # muted sage green — complements chestnut
on_secondary: 0xFFFFF4E8, # warm cream
# ── Surfaces ───────────────────────────────────────────────────────────
background: 0xFFF5EFE0, # warm parchment
on_background: 0xFF2C1A08, # dark coffee — high contrast on parchment
surface: 0xFFEDE6D5, # slightly darker warm card
surface_raised: 0xFFE0D7C3, # elevated card
on_surface: 0xFF2C1A08, # dark coffee
muted: 0xFF8A7A6A, # warm gray-brown — placeholders / captions
# ── Utility ────────────────────────────────────────────────────────────
error: :red_500,
on_error: :white,
border: 0xFFCCBCA8 # warm beige divider
)
end
end