`font-feature-settings` takes a comma-separated list of `"tag" integer` pairs (e.g. `"liga" 1, "case" 1`). Most tags are 0 or 1 for off/on, but a character-variant tag like `cv01`, which picks among several alternates, can take a larger integer like 2 or 3.
The spec recommends using a named high-level property — `font-variant-ligatures`, `font-variant-numeric`, `font-variant-caps` — whenever a feature has one, since the browser can reconcile it more predictably with other styling rules. `font-feature-settings` is the escape hatch reserved for features with no named property at all.
When both are set on the same element, the named `font-variant-*` property wins — a feature turned off via `font-feature-settings` gets turned back on by `font-variant-ligatures: common-ligatures`. The demo flips a few uncommon tags (`zero`, `frac`, `ordn`) with this low-level property and measures, live, which ones actually change rendered width in the system font.
When to use
Reserve it for features with no named property at all — stylistic sets, character variants, font-specific tags. Kerning, ligatures, and numeral styles all have named properties that are safer to use instead.