# Theme Showcase: Directions and Families

## The albersdown system

albersdown has two orthogonal axes:

- A direction sets the page mood: homage (warm cream ground, Newsreader serif body, light code blocks) or interaction (cool grey ground, all-grotesk type, dark code blocks).
- A family sets the accent hue used for links, the nested-square marker, and plot palettes: `red`, `lapis`, `ochre`, `teal`, `green`, or `violet`.

Any family pairs with either direction. This page is rendered in homage + red; `vignette("getting-started")` shows homage and `vignette("interaction")` shows the cool direction in full.

## The six families

Each family is a four-tone ramp (A900 → A300). The marker, links, and plot scales all draw from the active family.

    albersdown::albers_swatch(c("red", "lapis", "ochre", "teal", "green", "violet"))

    families <- c("red", "lapis", "ochre", "teal", "green", "violet")
    accent_a700 <- vapply(families, function(f) albersdown::albers_palette(f)[["A700"]], character(1))

    plot_df <- do.call(rbind, lapply(seq_along(families), function(i) {
      d <- mtcars
      d$family <- families[[i]]
      d
    }))
    plot_df$family <- factor(plot_df$family, levels = families)

    ggplot(plot_df, aes(wt, mpg, colour = family)) +
      geom_point(alpha = 0.85, size = 1.7) +
      facet_wrap(~family, ncol = 3) +
      scale_color_manual(values = accent_a700) +
      labs(
        title = "The same data in each family's A700 accent",
        subtitle = "Geometry held constant, only the accent family changes",
        x = "weight", y = "mpg"
      ) +
      theme(legend.position = "none")

## The two directions, in plots

`theme_albers()` grounds a plot in the direction you pass, so a figure always sits on the same surface as its page — warm cream for homage, cool grey for interaction.

    ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
      geom_point(size = 2.2) +
      albersdown::scale_color_albers(family = "red") +
      labs(title = "Homage direction", subtitle = "Warm cream ground, red family", colour = "cyl") +
      albersdown::theme_albers(family = "red", preset = "homage")

    ggplot(mtcars, aes(wt, mpg, colour = factor(cyl))) +
      geom_point(size = 2.2) +
      albersdown::scale_color_albers(family = "lapis") +
      labs(title = "Interaction direction", subtitle = "Cool grey ground, lapis family", colour = "cyl") +
      albersdown::theme_albers(family = "lapis", preset = "interaction")

## Picking a combination

    recipes <- data.frame(
      profile = c("homage-red", "homage-teal", "interaction-lapis", "interaction-ochre"),
      family = c("red", "teal", "lapis", "ochre"),
      direction = c("homage", "homage", "interaction", "interaction"),
      mood = c("warm, classic", "warm, calm", "cool, technical", "cool, earthy"),
      stringsAsFactors = FALSE
    )
    knitr::kable(recipes, format = "html", caption = "A few coherent direction + family pairings.")

A few coherent direction + family pairings.
profile | family | direction | mood
--- | --- | --- | ---
homage-red | red | homage | warm, classic
homage-teal | teal | homage | warm, calm
interaction-lapis | lapis | interaction | cool, technical
interaction-ochre | ochre | interaction | cool, earthy

## Next step

- Use `vignette("theme-lab")` to tune family, direction, style, and width interactively.
- See `vignette("getting-started")` (homage) and `vignette("interaction")` (interaction) for full-page examples of each direction.