Packages
mob
0.5.4
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 ──────────────────────────────────────────────────────────────
# 0xFF7C4A1E — warm chestnut
primary: :brown_600,
# warm cream — readable on chestnut
on_primary: 0xFFFFF4E8,
# muted sage green — complements chestnut
secondary: 0xFF5C7A52,
# warm cream
on_secondary: 0xFFFFF4E8,
# ── Surfaces ───────────────────────────────────────────────────────────
# warm parchment
background: 0xFFF5EFE0,
# dark coffee — high contrast on parchment
on_background: 0xFF2C1A08,
# slightly darker warm card
surface: 0xFFEDE6D5,
# elevated card
surface_raised: 0xFFE0D7C3,
# dark coffee
on_surface: 0xFF2C1A08,
# warm gray-brown — placeholders / captions
muted: 0xFF8A7A6A,
# ── Utility ────────────────────────────────────────────────────────────
error: :red_500,
on_error: :white,
# warm beige divider
border: 0xFFCCBCA8
)
end
end