Small Group Tutorials

Here to help students catch up, keep up, and move ahead. Book a consultation here.

How to Master CSS font-variant-alternates in Punggol Tuition

Student wearing glasses and a blue pinafore sits with a notebook and raised fist beside a white bag.

When a learner can reproduce a familiar example but a small variation causes confusion, the problem is usually an incomplete model rather than a lack of effort. The fastest useful response is to expose the hidden state and test one boundary at a time.

CSS font-variant-alternates selects font-specific alternate glyphs—such as stylistic alternates, stylesets, character variants, swashes, ornaments and annotation forms—without changing the underlying text. The readable names used in the property are mapped to numeric font features through @font-feature-values. Mastery therefore requires separating characters from glyphs, CSS parsing from font support, and decoration from readable content. This guide begins with that mechanism, then develops it through worked traces, deliberate mistakes, explained practice and transfer decisions.

The aim is independent reasoning. A learner should be able to predict behaviour, locate the earliest wrong assumption, use a safe diagnostic procedure and defend a design choice in a new project.

Punggol families can use the guide in short sessions around homework, CCAs and rest. The activities are proposed learning exercises, not claims about a physical branch, timetable, class size, fee, school relationship or guaranteed result.

Use disposable data and repositories, preserve backups, and check version-sensitive details against the official source. Current documentation settles a technical contract; observation and explanation turn that contract into usable knowledge.

Find your next learning step

Choose the route that matches the present difficulty. Use the complete index for a systematic course.

Build the model

Chapters 1-4 . Begin here, then continue after the learner can predict, verify and explain.

Use the core tools

Chapters 5-8 . Begin here, then continue after the learner can predict, verify and explain.

Handle boundaries

Chapters 9-12 . Begin here, then continue after the learner can predict, verify and explain.

Debug and verify

Chapters 13-16 . Begin here, then continue after the learner can predict, verify and explain.

Transfer with judgment

Chapters 17-20 . Begin here, then continue after the learner can predict, verify and explain.

Open the full chapter index . Jump to capstone practice . Use the How Studying Works hub . Read the official documentation

CHAPTER 1 OF 20 . Build the model

1. Characters and glyphs are different layers

Back to contents

font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is reading a decorative shape as a different character or storing ornamented Unicode lookalikes. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Copy the text, inspect the DOM string and compare it with the painted glyph.

For the Characters and glyphs are different layers chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on reading a decorative shape as a different character or storing ornamented Unicode lookalikes. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.heading { font-variant-alternates: historical-forms; }

Explained result. The character sequence remains unchanged while a supporting font may draw historical glyph forms. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: project heading. Predict the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text.” Apply this procedure: Copy the text, inspect the DOM string and compare it with the painted glyph. The expected mechanism is: The character sequence remains unchanged while a supporting font may draw historical glyph forms. For the project heading, add one near-miss that exposes reading a decorative shape as a different character or storing ornamented Unicode lookalikes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: library poster. Contrast the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text.” Apply this procedure: Copy the text, inspect the DOM string and compare it with the painted glyph. The expected mechanism is: The character sequence remains unchanged while a supporting font may draw historical glyph forms. For the library poster, add one near-miss that exposes reading a decorative shape as a different character or storing ornamented Unicode lookalikes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: CCA badge. Stress-test the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text.” Apply this procedure: Copy the text, inspect the DOM string and compare it with the painted glyph. The expected mechanism is: The character sequence remains unchanged while a supporting font may draw historical glyph forms. For the CCA badge, add one near-miss that exposes reading a decorative shape as a different character or storing ornamented Unicode lookalikes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: science label. Explain the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text.” Apply this procedure: Copy the text, inspect the DOM string and compare it with the painted glyph. The expected mechanism is: The character sequence remains unchanged while a supporting font may draw historical glyph forms. For the science label, add one near-miss that exposes reading a decorative shape as a different character or storing ornamented Unicode lookalikes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers reading a decorative shape as a different character or storing ornamented Unicode lookalikes.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Copy the text, inspect the DOM string and compare it with the painted glyph.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Characters and glyphs are different layers?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing reading a decorative shape as a different character or storing ornamented Unicode lookalikes be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny family invitation with a swash-capable font, conservative spacing and fallback testing. Include one ordinary case, one boundary and one deliberate failure caused by reading a decorative shape as a different character or storing ornamented Unicode lookalikes. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text. It shows a trace, not only a final value. The ordinary case should demonstrate “The character sequence remains unchanged while a supporting font may draw historical glyph forms.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Copy the text, inspect the DOM string and compare it with the painted glyph. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Characters and glyphs are different layers, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 2 OF 20 . Build the model

2. The initial value is normal

Back to contents

normal disables the alternate-feature selections controlled by this property. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is assuming normal selects a browser-preferred decorative alternate. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Reset one element to normal and compare computed style and rendering with the styled neighbour.

For the The initial value is normal chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on assuming normal selects a browser-preferred decorative alternate. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.plain { font-variant-alternates: normal; }

Explained result. The element requests none of the alternate categories represented by this property. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: CCA badge. Contrast the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “normal disables the alternate-feature selections controlled by this property.” Apply this procedure: Reset one element to normal and compare computed style and rendering with the styled neighbour. The expected mechanism is: The element requests none of the alternate categories represented by this property. For the CCA badge, add one near-miss that exposes assuming normal selects a browser-preferred decorative alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: science label. Stress-test the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “normal disables the alternate-feature selections controlled by this property.” Apply this procedure: Reset one element to normal and compare computed style and rendering with the styled neighbour. The expected mechanism is: The element requests none of the alternate categories represented by this property. For the science label, add one near-miss that exposes assuming normal selects a browser-preferred decorative alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: revision card. Explain the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “normal disables the alternate-feature selections controlled by this property.” Apply this procedure: Reset one element to normal and compare computed style and rendering with the styled neighbour. The expected mechanism is: The element requests none of the alternate categories represented by this property. For the revision card, add one near-miss that exposes assuming normal selects a browser-preferred decorative alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: family invitation. Transfer the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “normal disables the alternate-feature selections controlled by this property.” Apply this procedure: Reset one element to normal and compare computed style and rendering with the styled neighbour. The expected mechanism is: The element requests none of the alternate categories represented by this property. For the family invitation, add one near-miss that exposes assuming normal selects a browser-preferred decorative alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers assuming normal selects a browser-preferred decorative alternate.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Reset one element to normal and compare computed style and rendering with the styled neighbour.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from The initial value is normal?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming normal selects a browser-preferred decorative alternate be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny web article with inherited typography, scoped overrides and browser inspection. Include one ordinary case, one boundary and one deliberate failure caused by assuming normal selects a browser-preferred decorative alternate. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: normal disables the alternate-feature selections controlled by this property. It shows a trace, not only a final value. The ordinary case should demonstrate “The element requests none of the alternate categories represented by this property.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Reset one element to normal and compare computed style and rendering with the styled neighbour. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For The initial value is normal, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 3 OF 20 . Build the model

3. The property is inherited

Back to contents

A descendant normally receives its parent’s computed font-variant-alternates value. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is placing the rule on a large container and unintentionally decorating labels or long paragraphs. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms.

For the The property is inherited chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on placing the rule on a large container and unintentionally decorating labels or long paragraphs. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.poster { font-variant-alternates: historical-forms; }
.poster .details { font-variant-alternates: normal; }

Explained result. Historical forms can reach descendants, while the details subtree explicitly returns to normal. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: revision card. Stress-test the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A descendant normally receives its parent’s computed font-variant-alternates value.” Apply this procedure: Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms. The expected mechanism is: Historical forms can reach descendants, while the details subtree explicitly returns to normal. For the revision card, add one near-miss that exposes placing the rule on a large container and unintentionally decorating labels or long paragraphs. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: family invitation. Explain the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A descendant normally receives its parent’s computed font-variant-alternates value.” Apply this procedure: Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms. The expected mechanism is: Historical forms can reach descendants, while the details subtree explicitly returns to normal. For the family invitation, add one near-miss that exposes placing the rule on a large container and unintentionally decorating labels or long paragraphs. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: web article. Transfer the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A descendant normally receives its parent’s computed font-variant-alternates value.” Apply this procedure: Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms. The expected mechanism is: Historical forms can reach descendants, while the details subtree explicitly returns to normal. For the web article, add one near-miss that exposes placing the rule on a large container and unintentionally decorating labels or long paragraphs. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: design-system specimen. Predict the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A descendant normally receives its parent’s computed font-variant-alternates value.” Apply this procedure: Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms. The expected mechanism is: Historical forms can reach descendants, while the details subtree explicitly returns to normal. For the design-system specimen, add one near-miss that exposes placing the rule on a large container and unintentionally decorating labels or long paragraphs. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers placing the rule on a large container and unintentionally decorating labels or long paragraphs.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from The property is inherited?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing placing the rule on a large container and unintentionally decorating labels or long paragraphs be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design-system specimen with feature names, font files, screenshots and regression cases. Include one ordinary case, one boundary and one deliberate failure caused by placing the rule on a large container and unintentionally decorating labels or long paragraphs. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: A descendant normally receives its parent’s computed font-variant-alternates value. It shows a trace, not only a final value. The ordinary case should demonstrate “Historical forms can reach descendants, while the details subtree explicitly returns to normal.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Inspect computed styles down the tree and reset the smallest subtree that needs ordinary forms. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For The property is inherited, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 4 OF 20 . Build the model

4. historical-forms has a direct keyword

Back to contents

The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is treating historical lettering as universally available or automatically more authentic. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Use a documented test string, compare fonts and retain a readable normal control.

For the historical-forms has a direct keyword chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on treating historical lettering as universally available or automatically more authentic. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.history-sample { font-variant-alternates: historical-forms; }

Explained result. A supporting font may substitute historical forms; a font without them can render no visible change. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: web article. Explain the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it.” Apply this procedure: Use a documented test string, compare fonts and retain a readable normal control. The expected mechanism is: A supporting font may substitute historical forms; a font without them can render no visible change. For the web article, add one near-miss that exposes treating historical lettering as universally available or automatically more authentic. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: design-system specimen. Transfer the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it.” Apply this procedure: Use a documented test string, compare fonts and retain a readable normal control. The expected mechanism is: A supporting font may substitute historical forms; a font without them can render no visible change. For the design-system specimen, add one near-miss that exposes treating historical lettering as universally available or automatically more authentic. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: project heading. Predict the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it.” Apply this procedure: Use a documented test string, compare fonts and retain a readable normal control. The expected mechanism is: A supporting font may substitute historical forms; a font without them can render no visible change. For the project heading, add one near-miss that exposes treating historical lettering as universally available or automatically more authentic. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: library poster. Contrast the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it.” Apply this procedure: Use a documented test string, compare fonts and retain a readable normal control. The expected mechanism is: A supporting font may substitute historical forms; a font without them can render no visible change. For the library poster, add one near-miss that exposes treating historical lettering as universally available or automatically more authentic. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers treating historical lettering as universally available or automatically more authentic.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Use a documented test string, compare fonts and retain a readable normal control.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from historical-forms has a direct keyword?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing treating historical lettering as universally available or automatically more authentic be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny project heading with a display typeface, a named stylistic alternate and a plain fallback. Include one ordinary case, one boundary and one deliberate failure caused by treating historical lettering as universally available or automatically more authentic. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it. It shows a trace, not only a final value. The ordinary case should demonstrate “A supporting font may substitute historical forms; a font without them can render no visible change.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Use a documented test string, compare fonts and retain a readable normal control. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For historical-forms has a direct keyword, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 5 OF 20 . Use the core tools

5. stylistic() selects a named alternate

Back to contents

stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is putting a numeric OpenType parameter directly inside stylistic(). It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Define the readable name for the exact font family, then use that identifier in the property.

For the stylistic() selects a named alternate chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on putting a numeric OpenType parameter directly inside stylistic(). Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Demo { @stylistic { friendly: 1; } }
.title { font-family: Demo; font-variant-alternates: stylistic(friendly); }

Explained result. The name friendly maps to the font-specific stylistic alternate index 1. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: project heading. Transfer the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values.” Apply this procedure: Define the readable name for the exact font family, then use that identifier in the property. The expected mechanism is: The name friendly maps to the font-specific stylistic alternate index 1. For the project heading, add one near-miss that exposes putting a numeric OpenType parameter directly inside stylistic(). The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: library poster. Predict the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values.” Apply this procedure: Define the readable name for the exact font family, then use that identifier in the property. The expected mechanism is: The name friendly maps to the font-specific stylistic alternate index 1. For the library poster, add one near-miss that exposes putting a numeric OpenType parameter directly inside stylistic(). The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: CCA badge. Contrast the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values.” Apply this procedure: Define the readable name for the exact font family, then use that identifier in the property. The expected mechanism is: The name friendly maps to the font-specific stylistic alternate index 1. For the CCA badge, add one near-miss that exposes putting a numeric OpenType parameter directly inside stylistic(). The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: science label. Stress-test the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values.” Apply this procedure: Define the readable name for the exact font family, then use that identifier in the property. The expected mechanism is: The name friendly maps to the font-specific stylistic alternate index 1. For the science label, add one near-miss that exposes putting a numeric OpenType parameter directly inside stylistic(). The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers putting a numeric OpenType parameter directly inside stylistic().
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Define the readable name for the exact font family, then use that identifier in the property.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from stylistic() selects a named alternate?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing putting a numeric OpenType parameter directly inside stylistic() be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny library poster with ornamental initials, ordinary body text and a readable print version. Include one ordinary case, one boundary and one deliberate failure caused by putting a numeric OpenType parameter directly inside stylistic(). Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: stylistic(name) refers to a font-specific stylistic alternate name defined with @font-feature-values. It shows a trace, not only a final value. The ordinary case should demonstrate “The name friendly maps to the font-specific stylistic alternate index 1.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Define the readable name for the exact font family, then use that identifier in the property. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For stylistic() selects a named alternate, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 6 OF 20 . Use the core tools

6. styleset() can combine named sets

Back to contents

styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is assuming the same styleset number means the same design across unrelated fonts. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Keep mappings beside each family and test every named set against its font documentation.

For the styleset() can combine named sets chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on assuming the same styleset number means the same design across unrelated fonts. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Demo { @styleset { school: 1; rounded: 3; } }
.logo { font-variant-alternates: styleset(school, rounded); }

Explained result. The element requests the two mapped stylistic sets for Demo when that family supplies them. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: CCA badge. Predict the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping.” Apply this procedure: Keep mappings beside each family and test every named set against its font documentation. The expected mechanism is: The element requests the two mapped stylistic sets for Demo when that family supplies them. For the CCA badge, add one near-miss that exposes assuming the same styleset number means the same design across unrelated fonts. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: science label. Contrast the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping.” Apply this procedure: Keep mappings beside each family and test every named set against its font documentation. The expected mechanism is: The element requests the two mapped stylistic sets for Demo when that family supplies them. For the science label, add one near-miss that exposes assuming the same styleset number means the same design across unrelated fonts. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: revision card. Stress-test the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping.” Apply this procedure: Keep mappings beside each family and test every named set against its font documentation. The expected mechanism is: The element requests the two mapped stylistic sets for Demo when that family supplies them. For the revision card, add one near-miss that exposes assuming the same styleset number means the same design across unrelated fonts. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: family invitation. Explain the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping.” Apply this procedure: Keep mappings beside each family and test every named set against its font documentation. The expected mechanism is: The element requests the two mapped stylistic sets for Demo when that family supplies them. For the family invitation, add one near-miss that exposes assuming the same styleset number means the same design across unrelated fonts. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers assuming the same styleset number means the same design across unrelated fonts.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Keep mappings beside each family and test every named set against its font documentation.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from styleset() can combine named sets?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming the same styleset number means the same design across unrelated fonts be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny CCA badge with short team lettering, a controlled styleset and accessible text. Include one ordinary case, one boundary and one deliberate failure caused by assuming the same styleset number means the same design across unrelated fonts. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: styleset() selects one or more named stylistic sets whose numeric meanings come from the active font mapping. It shows a trace, not only a final value. The ordinary case should demonstrate “The element requests the two mapped stylistic sets for Demo when that family supplies them.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Keep mappings beside each family and test every named set against its font documentation. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For styleset() can combine named sets, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 7 OF 20 . Use the core tools

7. character-variant() targets variant groups

Back to contents

character-variant() chooses named character-variant features and may include an alternate index through the mapping rule. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is using it as a text-replacement mechanism for spelling or symbols. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. List the affected characters from the font specimen and verify copied text remains original.

For the character-variant() targets variant groups chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on using it as a text-replacement mechanism for spelling or symbols. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Demo { @character-variant { open-four: 4 1; } }
.data { font-variant-alternates: character-variant(open-four); }

Explained result. The mapped character-variant feature is requested without altering a typed digit 4. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: revision card. Contrast the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “character-variant() chooses named character-variant features and may include an alternate index through the mapping rule.” Apply this procedure: List the affected characters from the font specimen and verify copied text remains original. The expected mechanism is: The mapped character-variant feature is requested without altering a typed digit 4. For the revision card, add one near-miss that exposes using it as a text-replacement mechanism for spelling or symbols. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: family invitation. Stress-test the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “character-variant() chooses named character-variant features and may include an alternate index through the mapping rule.” Apply this procedure: List the affected characters from the font specimen and verify copied text remains original. The expected mechanism is: The mapped character-variant feature is requested without altering a typed digit 4. For the family invitation, add one near-miss that exposes using it as a text-replacement mechanism for spelling or symbols. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: web article. Explain the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “character-variant() chooses named character-variant features and may include an alternate index through the mapping rule.” Apply this procedure: List the affected characters from the font specimen and verify copied text remains original. The expected mechanism is: The mapped character-variant feature is requested without altering a typed digit 4. For the web article, add one near-miss that exposes using it as a text-replacement mechanism for spelling or symbols. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: design-system specimen. Transfer the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “character-variant() chooses named character-variant features and may include an alternate index through the mapping rule.” Apply this procedure: List the affected characters from the font specimen and verify copied text remains original. The expected mechanism is: The mapped character-variant feature is requested without altering a typed digit 4. For the design-system specimen, add one near-miss that exposes using it as a text-replacement mechanism for spelling or symbols. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers using it as a text-replacement mechanism for spelling or symbols.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “List the affected characters from the font specimen and verify copied text remains original.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from character-variant() targets variant groups?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using it as a text-replacement mechanism for spelling or symbols be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny science label with stable characters, a character variant and copy-paste verification. Include one ordinary case, one boundary and one deliberate failure caused by using it as a text-replacement mechanism for spelling or symbols. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: character-variant() chooses named character-variant features and may include an alternate index through the mapping rule. It shows a trace, not only a final value. The ordinary case should demonstrate “The mapped character-variant feature is requested without altering a typed digit 4.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: List the affected characters from the font specimen and verify copied text remains original. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For character-variant() targets variant groups, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 8 OF 20 . Use the core tools

8. swash() is font-specific display styling

Back to contents

swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Restrict the effect to short display text and test collisions at narrow widths.

For the swash() is font-specific display styling chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Script { @swash { gentle: 1; } }
.invitation { font-family: Script; font-variant-alternates: swash(gentle); }

Explained result. The short invitation text may use the font’s gentle swash alternate. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: web article. Stress-test the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs.” Apply this procedure: Restrict the effect to short display text and test collisions at narrow widths. The expected mechanism is: The short invitation text may use the font’s gentle swash alternate. For the web article, add one near-miss that exposes applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: design-system specimen. Explain the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs.” Apply this procedure: Restrict the effect to short display text and test collisions at narrow widths. The expected mechanism is: The short invitation text may use the font’s gentle swash alternate. For the design-system specimen, add one near-miss that exposes applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: project heading. Transfer the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs.” Apply this procedure: Restrict the effect to short display text and test collisions at narrow widths. The expected mechanism is: The short invitation text may use the font’s gentle swash alternate. For the project heading, add one near-miss that exposes applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: library poster. Predict the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs.” Apply this procedure: Restrict the effect to short display text and test collisions at narrow widths. The expected mechanism is: The short invitation text may use the font’s gentle swash alternate. For the library poster, add one near-miss that exposes applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Restrict the effect to short display text and test collisions at narrow widths.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from swash() is font-specific display styling?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny revision card with one decorative heading and unaffected explanation text. Include one ordinary case, one boundary and one deliberate failure caused by applying swashes to dense paragraphs, form fields or identifiers where shapes impede reading. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: swash(name) chooses a named swash mapping for a font that provides suitable alternate glyphs. It shows a trace, not only a final value. The ordinary case should demonstrate “The short invitation text may use the font’s gentle swash alternate.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Restrict the effect to short display text and test collisions at narrow widths. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For swash() is font-specific display styling, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 9 OF 20 . Handle boundaries

9. ornaments() uses a font ornament feature

Back to contents

ornaments(name) requests a named ornament selection from the chosen font family. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is using an ornament glyph as the only accessible label or instruction. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning.

For the ornaments() uses a font ornament feature chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on using an ornament glyph as the only accessible label or instruction. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Display { @ornaments { leaf: 2; } }
.divider { font-variant-alternates: ornaments(leaf); }

Explained result. The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: project heading. Explain the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “ornaments(name) requests a named ornament selection from the chosen font family.” Apply this procedure: Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning. The expected mechanism is: The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup. For the project heading, add one near-miss that exposes using an ornament glyph as the only accessible label or instruction. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: library poster. Transfer the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “ornaments(name) requests a named ornament selection from the chosen font family.” Apply this procedure: Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning. The expected mechanism is: The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup. For the library poster, add one near-miss that exposes using an ornament glyph as the only accessible label or instruction. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: CCA badge. Predict the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “ornaments(name) requests a named ornament selection from the chosen font family.” Apply this procedure: Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning. The expected mechanism is: The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup. For the CCA badge, add one near-miss that exposes using an ornament glyph as the only accessible label or instruction. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: science label. Contrast the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “ornaments(name) requests a named ornament selection from the chosen font family.” Apply this procedure: Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning. The expected mechanism is: The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup. For the science label, add one near-miss that exposes using an ornament glyph as the only accessible label or instruction. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers using an ornament glyph as the only accessible label or instruction.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from ornaments() uses a font ornament feature?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using an ornament glyph as the only accessible label or instruction be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny family invitation with a swash-capable font, conservative spacing and fallback testing. Include one ordinary case, one boundary and one deliberate failure caused by using an ornament glyph as the only accessible label or instruction. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: ornaments(name) requests a named ornament selection from the chosen font family. It shows a trace, not only a final value. The ordinary case should demonstrate “The declaration requests ornament index 2 for Display; accessibility still depends on the surrounding markup.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Keep semantic text in the DOM and mark purely decorative output so it does not replace meaning. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For ornaments() uses a font ornament feature, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 10 OF 20 . Handle boundaries

10. annotation() selects alternate annotation forms

Back to contents

annotation(name) addresses a font’s alternate annotation forms through a named mapping. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is assuming the feature creates semantic annotations or tooltips. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Provide actual explanatory text in HTML and treat the glyph choice only as typography.

For the annotation() selects alternate annotation forms chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on assuming the feature creates semantic annotations or tooltips. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values Notes { @annotation { circled: 1; } }
.marker { font-variant-alternates: annotation(circled); }

Explained result. The marker may gain a circled annotation form, but no new semantic annotation is created. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: CCA badge. Transfer the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “annotation(name) addresses a font’s alternate annotation forms through a named mapping.” Apply this procedure: Provide actual explanatory text in HTML and treat the glyph choice only as typography. The expected mechanism is: The marker may gain a circled annotation form, but no new semantic annotation is created. For the CCA badge, add one near-miss that exposes assuming the feature creates semantic annotations or tooltips. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: science label. Predict the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “annotation(name) addresses a font’s alternate annotation forms through a named mapping.” Apply this procedure: Provide actual explanatory text in HTML and treat the glyph choice only as typography. The expected mechanism is: The marker may gain a circled annotation form, but no new semantic annotation is created. For the science label, add one near-miss that exposes assuming the feature creates semantic annotations or tooltips. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: revision card. Contrast the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “annotation(name) addresses a font’s alternate annotation forms through a named mapping.” Apply this procedure: Provide actual explanatory text in HTML and treat the glyph choice only as typography. The expected mechanism is: The marker may gain a circled annotation form, but no new semantic annotation is created. For the revision card, add one near-miss that exposes assuming the feature creates semantic annotations or tooltips. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: family invitation. Stress-test the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “annotation(name) addresses a font’s alternate annotation forms through a named mapping.” Apply this procedure: Provide actual explanatory text in HTML and treat the glyph choice only as typography. The expected mechanism is: The marker may gain a circled annotation form, but no new semantic annotation is created. For the family invitation, add one near-miss that exposes assuming the feature creates semantic annotations or tooltips. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers assuming the feature creates semantic annotations or tooltips.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Provide actual explanatory text in HTML and treat the glyph choice only as typography.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from annotation() selects alternate annotation forms?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming the feature creates semantic annotations or tooltips be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny web article with inherited typography, scoped overrides and browser inspection. Include one ordinary case, one boundary and one deliberate failure caused by assuming the feature creates semantic annotations or tooltips. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: annotation(name) addresses a font’s alternate annotation forms through a named mapping. It shows a trace, not only a final value. The ordinary case should demonstrate “The marker may gain a circled annotation form, but no new semantic annotation is created.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Provide actual explanatory text in HTML and treat the glyph choice only as typography. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For annotation() selects alternate annotation forms, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 11 OF 20 . Handle boundaries

11. @font-feature-values binds names to families

Back to contents

Mappings are associated with named font families because numeric alternate indices are font-specific. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is declaring one global name and expecting every fallback font to interpret it identically. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Review each family block and record its source font version and feature specimen.

For the @font-feature-values binds names to families chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on declaring one global name and expecting every fallback font to interpret it identically. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

@font-feature-values 'Study Sans' { @styleset { clear-l: 2; } }

Explained result. The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: revision card. Predict the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Mappings are associated with named font families because numeric alternate indices are font-specific.” Apply this procedure: Review each family block and record its source font version and feature specimen. The expected mechanism is: The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature. For the revision card, add one near-miss that exposes declaring one global name and expecting every fallback font to interpret it identically. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: family invitation. Contrast the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Mappings are associated with named font families because numeric alternate indices are font-specific.” Apply this procedure: Review each family block and record its source font version and feature specimen. The expected mechanism is: The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature. For the family invitation, add one near-miss that exposes declaring one global name and expecting every fallback font to interpret it identically. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: web article. Stress-test the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Mappings are associated with named font families because numeric alternate indices are font-specific.” Apply this procedure: Review each family block and record its source font version and feature specimen. The expected mechanism is: The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature. For the web article, add one near-miss that exposes declaring one global name and expecting every fallback font to interpret it identically. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: design-system specimen. Explain the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Mappings are associated with named font families because numeric alternate indices are font-specific.” Apply this procedure: Review each family block and record its source font version and feature specimen. The expected mechanism is: The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature. For the design-system specimen, add one near-miss that exposes declaring one global name and expecting every fallback font to interpret it identically. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers declaring one global name and expecting every fallback font to interpret it identically.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Review each family block and record its source font version and feature specimen.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from @font-feature-values binds names to families?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing declaring one global name and expecting every fallback font to interpret it identically be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design-system specimen with feature names, font files, screenshots and regression cases. Include one ordinary case, one boundary and one deliberate failure caused by declaring one global name and expecting every fallback font to interpret it identically. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: Mappings are associated with named font families because numeric alternate indices are font-specific. It shows a trace, not only a final value. The ordinary case should demonstrate “The readable name clear-l is meaningful for Study Sans under that mapping, not as a universal font feature.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Review each family block and record its source font version and feature specimen. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For @font-feature-values binds names to families, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 12 OF 20 . Handle boundaries

12. Undefined names do not choose glyphs

Back to contents

When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is mistaking a valid parsed declaration with an undefined name for proof that the effect works. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Check the mapping rule, active computed font and visible supporting glyphs separately.

For the Undefined names do not choose glyphs chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on mistaking a valid parsed declaration with an undefined name for proof that the effect works. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-variant-alternates: swash(not-defined); }

Explained result. The identifier can remain in the computed declaration while no mapped swash is selected. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: web article. Contrast the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature.” Apply this procedure: Check the mapping rule, active computed font and visible supporting glyphs separately. The expected mechanism is: The identifier can remain in the computed declaration while no mapped swash is selected. For the web article, add one near-miss that exposes mistaking a valid parsed declaration with an undefined name for proof that the effect works. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: design-system specimen. Stress-test the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature.” Apply this procedure: Check the mapping rule, active computed font and visible supporting glyphs separately. The expected mechanism is: The identifier can remain in the computed declaration while no mapped swash is selected. For the design-system specimen, add one near-miss that exposes mistaking a valid parsed declaration with an undefined name for proof that the effect works. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: project heading. Explain the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature.” Apply this procedure: Check the mapping rule, active computed font and visible supporting glyphs separately. The expected mechanism is: The identifier can remain in the computed declaration while no mapped swash is selected. For the project heading, add one near-miss that exposes mistaking a valid parsed declaration with an undefined name for proof that the effect works. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: library poster. Transfer the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature.” Apply this procedure: Check the mapping rule, active computed font and visible supporting glyphs separately. The expected mechanism is: The identifier can remain in the computed declaration while no mapped swash is selected. For the library poster, add one near-miss that exposes mistaking a valid parsed declaration with an undefined name for proof that the effect works. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers mistaking a valid parsed declaration with an undefined name for proof that the effect works.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Check the mapping rule, active computed font and visible supporting glyphs separately.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Undefined names do not choose glyphs?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing mistaking a valid parsed declaration with an undefined name for proof that the effect works be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny project heading with a display typeface, a named stylistic alternate and a plain fallback. Include one ordinary case, one boundary and one deliberate failure caused by mistaking a valid parsed declaration with an undefined name for proof that the effect works. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: When a name lacks a relevant mapping for the active family, it is ignored for glyph selection rather than inventing a feature. It shows a trace, not only a final value. The ordinary case should demonstrate “The identifier can remain in the computed declaration while no mapped swash is selected.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Check the mapping rule, active computed font and visible supporting glyphs separately. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Undefined names do not choose glyphs, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 13 OF 20 . Debug and verify

13. Fallbacks can remove the visible effect

Back to contents

If font fallback chooses another family, a mapping tied to the intended family may no longer apply. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is debugging only the property while the actual glyph comes from a fallback font. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Use developer font inspection per character and test missing-glyph and loading-failure cases.

For the Fallbacks can remove the visible effect chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on debugging only the property while the actual glyph comes from a fallback font. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-family: Demo, sans-serif; font-variant-alternates: stylistic(friendly); }

Explained result. The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: project heading. Stress-test the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “If font fallback chooses another family, a mapping tied to the intended family may no longer apply.” Apply this procedure: Use developer font inspection per character and test missing-glyph and loading-failure cases. The expected mechanism is: The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. For the project heading, add one near-miss that exposes debugging only the property while the actual glyph comes from a fallback font. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: library poster. Explain the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “If font fallback chooses another family, a mapping tied to the intended family may no longer apply.” Apply this procedure: Use developer font inspection per character and test missing-glyph and loading-failure cases. The expected mechanism is: The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. For the library poster, add one near-miss that exposes debugging only the property while the actual glyph comes from a fallback font. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: CCA badge. Transfer the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “If font fallback chooses another family, a mapping tied to the intended family may no longer apply.” Apply this procedure: Use developer font inspection per character and test missing-glyph and loading-failure cases. The expected mechanism is: The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. For the CCA badge, add one near-miss that exposes debugging only the property while the actual glyph comes from a fallback font. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: science label. Predict the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “If font fallback chooses another family, a mapping tied to the intended family may no longer apply.” Apply this procedure: Use developer font inspection per character and test missing-glyph and loading-failure cases. The expected mechanism is: The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. For the science label, add one near-miss that exposes debugging only the property while the actual glyph comes from a fallback font. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers debugging only the property while the actual glyph comes from a fallback font.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Use developer font inspection per character and test missing-glyph and loading-failure cases.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Fallbacks can remove the visible effect?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing debugging only the property while the actual glyph comes from a fallback font be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny library poster with ornamental initials, ordinary body text and a readable print version. Include one ordinary case, one boundary and one deliberate failure caused by debugging only the property while the actual glyph comes from a fallback font. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: If font fallback chooses another family, a mapping tied to the intended family may no longer apply. It shows a trace, not only a final value. The ordinary case should demonstrate “The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Use developer font inspection per character and test missing-glyph and loading-failure cases. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Fallbacks can remove the visible effect, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 14 OF 20 . Debug and verify

14. Generic families do not own these mappings

Back to contents

Font-specific feature-value names are not defined for generic families such as serif or sans-serif. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is attaching a numeric design promise to a generic family whose actual font varies by platform. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Name and load the intended font, then provide a normal fallback experience.

For the Generic families do not own these mappings chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on attaching a numeric design promise to a generic family whose actual font varies by platform. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.generic { font-family: serif; font-variant-alternates: normal; }

Explained result. The generic fallback stays readable without pretending to expose one known alternate design. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: CCA badge. Explain the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Font-specific feature-value names are not defined for generic families such as serif or sans-serif.” Apply this procedure: Name and load the intended font, then provide a normal fallback experience. The expected mechanism is: The generic fallback stays readable without pretending to expose one known alternate design. For the CCA badge, add one near-miss that exposes attaching a numeric design promise to a generic family whose actual font varies by platform. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: science label. Transfer the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Font-specific feature-value names are not defined for generic families such as serif or sans-serif.” Apply this procedure: Name and load the intended font, then provide a normal fallback experience. The expected mechanism is: The generic fallback stays readable without pretending to expose one known alternate design. For the science label, add one near-miss that exposes attaching a numeric design promise to a generic family whose actual font varies by platform. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: revision card. Predict the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Font-specific feature-value names are not defined for generic families such as serif or sans-serif.” Apply this procedure: Name and load the intended font, then provide a normal fallback experience. The expected mechanism is: The generic fallback stays readable without pretending to expose one known alternate design. For the revision card, add one near-miss that exposes attaching a numeric design promise to a generic family whose actual font varies by platform. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: family invitation. Contrast the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Font-specific feature-value names are not defined for generic families such as serif or sans-serif.” Apply this procedure: Name and load the intended font, then provide a normal fallback experience. The expected mechanism is: The generic fallback stays readable without pretending to expose one known alternate design. For the family invitation, add one near-miss that exposes attaching a numeric design promise to a generic family whose actual font varies by platform. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers attaching a numeric design promise to a generic family whose actual font varies by platform.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Name and load the intended font, then provide a normal fallback experience.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Generic families do not own these mappings?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing attaching a numeric design promise to a generic family whose actual font varies by platform be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny CCA badge with short team lettering, a controlled styleset and accessible text. Include one ordinary case, one boundary and one deliberate failure caused by attaching a numeric design promise to a generic family whose actual font varies by platform. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: Font-specific feature-value names are not defined for generic families such as serif or sans-serif. It shows a trace, not only a final value. The ordinary case should demonstrate “The generic fallback stays readable without pretending to expose one known alternate design.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Name and load the intended font, then provide a normal fallback experience. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Generic families do not own these mappings, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 15 OF 20 . Debug and verify

15. Multiple alternate categories may combine

Back to contents

The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is stacking features without checking whether one overrides or visually conflicts with another. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Add one feature at a time, record the glyph change and test the final combination.

For the Multiple alternate categories may combine chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on stacking features without checking whether one overrides or visually conflicts with another. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.display { font-variant-alternates: historical-forms styleset(school) swash(gentle); }

Explained result. The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: revision card. Transfer the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction.” Apply this procedure: Add one feature at a time, record the glyph change and test the final combination. The expected mechanism is: The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions. For the revision card, add one near-miss that exposes stacking features without checking whether one overrides or visually conflicts with another. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: family invitation. Predict the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction.” Apply this procedure: Add one feature at a time, record the glyph change and test the final combination. The expected mechanism is: The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions. For the family invitation, add one near-miss that exposes stacking features without checking whether one overrides or visually conflicts with another. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: web article. Contrast the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction.” Apply this procedure: Add one feature at a time, record the glyph change and test the final combination. The expected mechanism is: The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions. For the web article, add one near-miss that exposes stacking features without checking whether one overrides or visually conflicts with another. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: design-system specimen. Stress-test the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction.” Apply this procedure: Add one feature at a time, record the glyph change and test the final combination. The expected mechanism is: The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions. For the design-system specimen, add one near-miss that exposes stacking features without checking whether one overrides or visually conflicts with another. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers stacking features without checking whether one overrides or visually conflicts with another.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Add one feature at a time, record the glyph change and test the final combination.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Multiple alternate categories may combine?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing stacking features without checking whether one overrides or visually conflicts with another be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny science label with stable characters, a character variant and copy-paste verification. Include one ordinary case, one boundary and one deliberate failure caused by stacking features without checking whether one overrides or visually conflicts with another. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: The grammar permits compatible alternate functions and keywords to be requested together, subject to font support and feature interaction. It shows a trace, not only a final value. The ordinary case should demonstrate “The declaration requests three categories, but the actual result depends on the chosen font’s supported tables and interactions.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Add one feature at a time, record the glyph change and test the final combination. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Multiple alternate categories may combine, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 16 OF 20 . Debug and verify

16. The font shorthand can reset subproperties

Back to contents

Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is setting alternates first and later erasing them with an unrelated-looking font declaration. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Inspect cascade order and computed values after every shorthand in the rule set.

For the The font shorthand can reset subproperties chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on setting alternates first and later erasing them with an unrelated-looking font declaration. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.title { font-variant-alternates: styleset(school); font: 700 2rem Demo; }

Explained result. The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: web article. Predict the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules.” Apply this procedure: Inspect cascade order and computed values after every shorthand in the rule set. The expected mechanism is: The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. For the web article, add one near-miss that exposes setting alternates first and later erasing them with an unrelated-looking font declaration. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: design-system specimen. Contrast the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules.” Apply this procedure: Inspect cascade order and computed values after every shorthand in the rule set. The expected mechanism is: The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. For the design-system specimen, add one near-miss that exposes setting alternates first and later erasing them with an unrelated-looking font declaration. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: project heading. Stress-test the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules.” Apply this procedure: Inspect cascade order and computed values after every shorthand in the rule set. The expected mechanism is: The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. For the project heading, add one near-miss that exposes setting alternates first and later erasing them with an unrelated-looking font declaration. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: library poster. Explain the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules.” Apply this procedure: Inspect cascade order and computed values after every shorthand in the rule set. The expected mechanism is: The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. For the library poster, add one near-miss that exposes setting alternates first and later erasing them with an unrelated-looking font declaration. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers setting alternates first and later erasing them with an unrelated-looking font declaration.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Inspect cascade order and computed values after every shorthand in the rule set.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from The font shorthand can reset subproperties?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing setting alternates first and later erasing them with an unrelated-looking font declaration be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny revision card with one decorative heading and unaffected explanation text. Include one ordinary case, one boundary and one deliberate failure caused by setting alternates first and later erasing them with an unrelated-looking font declaration. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules. It shows a trace, not only a final value. The ordinary case should demonstrate “The later shorthand can reset earlier font subproperty choices, so declaration order must be tested.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Inspect cascade order and computed values after every shorthand in the rule set. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For The font shorthand can reset subproperties, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 17 OF 20 . Transfer with judgment

17. font-feature-settings is a lower-level escape hatch

Back to contents

font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is mixing both layers without deciding which declaration should win for the same feature. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade.

For the font-feature-settings is a lower-level escape hatch chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on mixing both layers without deciding which declaration should win for the same feature. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.raw { font-feature-settings: 'ss01' 1; }
.named { font-variant-alternates: styleset(school); }

Explained result. Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: project heading. Contrast the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available.” Apply this procedure: Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade. The expected mechanism is: Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly. For the project heading, add one near-miss that exposes mixing both layers without deciding which declaration should win for the same feature. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: library poster. Stress-test the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available.” Apply this procedure: Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade. The expected mechanism is: Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly. For the library poster, add one near-miss that exposes mixing both layers without deciding which declaration should win for the same feature. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: CCA badge. Explain the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available.” Apply this procedure: Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade. The expected mechanism is: Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly. For the CCA badge, add one near-miss that exposes mixing both layers without deciding which declaration should win for the same feature. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: science label. Transfer the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available.” Apply this procedure: Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade. The expected mechanism is: Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly. For the science label, add one near-miss that exposes mixing both layers without deciding which declaration should win for the same feature. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers mixing both layers without deciding which declaration should win for the same feature.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from font-feature-settings is a lower-level escape hatch?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing mixing both layers without deciding which declaration should win for the same feature be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny family invitation with a swash-capable font, conservative spacing and fallback testing. Include one ordinary case, one boundary and one deliberate failure caused by mixing both layers without deciding which declaration should win for the same feature. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: font-feature-settings addresses OpenType tags directly, while font-variant-alternates provides named, property-level controls where available. It shows a trace, not only a final value. The ordinary case should demonstrate “Both may reach related OpenType features, but the named property communicates intent and family mapping more clearly.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Prefer the semantic property, reserve raw tags for unsupported cases and inspect the cascade. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For font-feature-settings is a lower-level escape hatch, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 18 OF 20 . Transfer with judgment

18. Support has two independent gates

Back to contents

A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is calling a property unsupported when the real issue is a font file with no alternate. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Run CSS.supports, inspect the loaded font and compare a known feature specimen.

For the Support has two independent gates chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on calling a property unsupported when the real issue is a font file with no alternate. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

console.log(CSS.supports('font-variant-alternates','historical-forms'));

Explained result. The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: CCA badge. Stress-test the rule using short team lettering, a controlled styleset and accessible text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index.” Apply this procedure: Run CSS.supports, inspect the loaded font and compare a known feature specimen. The expected mechanism is: The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph. For the CCA badge, add one near-miss that exposes calling a property unsupported when the real issue is a font file with no alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: science label. Explain the rule using stable characters, a character variant and copy-paste verification. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index.” Apply this procedure: Run CSS.supports, inspect the loaded font and compare a known feature specimen. The expected mechanism is: The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph. For the science label, add one near-miss that exposes calling a property unsupported when the real issue is a font file with no alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: revision card. Transfer the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index.” Apply this procedure: Run CSS.supports, inspect the loaded font and compare a known feature specimen. The expected mechanism is: The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph. For the revision card, add one near-miss that exposes calling a property unsupported when the real issue is a font file with no alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: family invitation. Predict the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index.” Apply this procedure: Run CSS.supports, inspect the loaded font and compare a known feature specimen. The expected mechanism is: The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph. For the family invitation, add one near-miss that exposes calling a property unsupported when the real issue is a font file with no alternate. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers calling a property unsupported when the real issue is a font file with no alternate.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Run CSS.supports, inspect the loaded font and compare a known feature specimen.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Support has two independent gates?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing calling a property unsupported when the real issue is a font file with no alternate be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny web article with inherited typography, scoped overrides and browser inspection. Include one ordinary case, one boundary and one deliberate failure caused by calling a property unsupported when the real issue is a font file with no alternate. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: A browser must implement the CSS syntax and the selected font must contain the requested feature and mapped index. It shows a trace, not only a final value. The ordinary case should demonstrate “The feature query reports syntax support only; it cannot prove that a particular font has a visible historical glyph.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Run CSS.supports, inspect the loaded font and compare a known feature specimen. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Support has two independent gates, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 19 OF 20 . Transfer with judgment

19. Visual regression needs stable fonts and strings

Back to contents

Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is using a screenshot of arbitrary prose that contains no affected character. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Choose minimal diagnostic strings and store normal and alternate references together.

For the Visual regression needs stable fonts and strings chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on using a screenshot of arbitrary prose that contains no affected character. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

const specimen='A4Q ampersand';
console.log(specimen);

Explained result. A documented specimen makes it possible to tell a missing feature from a string that never exercised it. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: revision card. Explain the rule using one decorative heading and unaffected explanation text. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled.” Apply this procedure: Choose minimal diagnostic strings and store normal and alternate references together. The expected mechanism is: A documented specimen makes it possible to tell a missing feature from a string that never exercised it. For the revision card, add one near-miss that exposes using a screenshot of arbitrary prose that contains no affected character. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: family invitation. Transfer the rule using a swash-capable font, conservative spacing and fallback testing. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled.” Apply this procedure: Choose minimal diagnostic strings and store normal and alternate references together. The expected mechanism is: A documented specimen makes it possible to tell a missing feature from a string that never exercised it. For the family invitation, add one near-miss that exposes using a screenshot of arbitrary prose that contains no affected character. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: web article. Predict the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled.” Apply this procedure: Choose minimal diagnostic strings and store normal and alternate references together. The expected mechanism is: A documented specimen makes it possible to tell a missing feature from a string that never exercised it. For the web article, add one near-miss that exposes using a screenshot of arbitrary prose that contains no affected character. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: design-system specimen. Contrast the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled.” Apply this procedure: Choose minimal diagnostic strings and store normal and alternate references together. The expected mechanism is: A documented specimen makes it possible to tell a missing feature from a string that never exercised it. For the design-system specimen, add one near-miss that exposes using a screenshot of arbitrary prose that contains no affected character. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers using a screenshot of arbitrary prose that contains no affected character.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Choose minimal diagnostic strings and store normal and alternate references together.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Visual regression needs stable fonts and strings?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using a screenshot of arbitrary prose that contains no affected character be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design-system specimen with feature names, font files, screenshots and regression cases. Include one ordinary case, one boundary and one deliberate failure caused by using a screenshot of arbitrary prose that contains no affected character. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled. It shows a trace, not only a final value. The ordinary case should demonstrate “A documented specimen makes it possible to tell a missing feature from a string that never exercised it.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Choose minimal diagnostic strings and store normal and alternate references together. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Visual regression needs stable fonts and strings, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

CHAPTER 20 OF 20 . Transfer with judgment

20. Accessible design keeps meaning independent

Back to contents

Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable. Treat that sentence as a testable model. A secure learner can point to the relevant input, name the operation, describe the resulting state and identify one observation that would prove the model incomplete.

The high-value mistake in this chapter is using ornate forms where students must distinguish similar characters or enter exact codes. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release.

For the Accessible design keeps meaning independent chapter on CSS font-variant-alternates, use a two-column trace during a short Punggol home session. On the left, write the predicted state for this exact mechanism before the tool runs. On the right, record the observation that bears on using ornate forms where students must distinguish similar characters or enter exact codes. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.code, input, button { font-variant-alternates: normal; }

Explained result. Functional text remains ordinary even when a nearby display heading uses decorative alternates. Check the boundary as well as the happy path: ask what happens with an empty input, a duplicate or tied value, an unsupported type, a missing path, a NULL, or a second reference to the same object. Only the relevant boundary should be kept; the list is a prompt for judgment, not a demand to force every case into every example.

Four purposeful transfer cases

Case 1: web article. Transfer the rule using inherited typography, scoped overrides and browser inspection. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable.” Apply this procedure: Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release. The expected mechanism is: Functional text remains ordinary even when a nearby display heading uses decorative alternates. For the web article, add one near-miss that exposes using ornate forms where students must distinguish similar characters or enter exact codes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 2: design-system specimen. Predict the rule using feature names, font files, screenshots and regression cases. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable.” Apply this procedure: Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release. The expected mechanism is: Functional text remains ordinary even when a nearby display heading uses decorative alternates. For the design-system specimen, add one near-miss that exposes using ornate forms where students must distinguish similar characters or enter exact codes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 3: project heading. Contrast the rule using a display typeface, a named stylistic alternate and a plain fallback. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable.” Apply this procedure: Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release. The expected mechanism is: Functional text remains ordinary even when a nearby display heading uses decorative alternates. For the project heading, add one near-miss that exposes using ornate forms where students must distinguish similar characters or enter exact codes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Case 4: library poster. Stress-test the rule using ornamental initials, ordinary body text and a readable print version. State the input grain or object graph, the chapter boundary and the intended output before choosing syntax. Change only one variable, so a wrong prediction has a single plausible cause.

Reasoned route. Begin with “Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable.” Apply this procedure: Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release. The expected mechanism is: Functional text remains ordinary even when a nearby display heading uses decorative alternates. For the library poster, add one near-miss that exposes using ornate forms where students must distinguish similar characters or enter exact codes. The answer is complete only when it says why the near-miss fails and how the corrected model transfers to a different project without relying on the original variable names.

Diagnostic route

  • Model check: ask the learner to draw or list the exact rows, fields, references, paths or states involved.
  • Boundary check: create the smallest input that triggers using ornate forms where students must distinguish similar characters or enter exact codes.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release.” and record the first changed observation.
  • Transfer check: repeat the rule in a second context and identify what remains invariant.

A parent does not need to know the final CSS font-variant-alternates syntax. For this chapter, useful prompts are: “What did you expect from Accessible design keeps meaning independent?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using ornate forms where students must distinguish similar characters or enter exact codes be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny project heading with a display typeface, a named stylistic alternate and a plain fallback. Include one ordinary case, one boundary and one deliberate failure caused by using ornate forms where students must distinguish similar characters or enter exact codes. Predict each result before using a tool, then report the first point where observation differs from prediction.

Answer guide. A strong response starts with the rule: Alternate glyphs should enrich presentation while labels, reading order, copy-paste text and spoken output remain understandable. It shows a trace, not only a final value. The ordinary case should demonstrate “Functional text remains ordinary even when a nearby display heading uses decorative alternates.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Test zoom, contrast, copy-paste, screen-reader text and a plain-font fallback before release. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Accessible design keeps meaning independent, separate the documented CSS font-variant-alternates mechanism from the project policy. State exactly what the technical contract guarantees, then state the project choice about validation, ordering, ownership, performance or recovery. Test whether the same distinction survives one transfer case, and keep stateful experiments disposable and backed up.

Previous chapter . Contents . Next chapter

Parent guide: choose the next useful step

Start with evidence, not a label such as careless. Ask for one prediction and one trace. If the first transition is wrong, rebuild the model. If the model is sound but syntax fails, practise reference use. If routine cases are correct but boundaries fail, vary ties, defaults, unsupported inputs, ownership or missing paths. If explanations transfer, move to a small project.

Keep a weekly record with four lines: concept, prediction, observed difference and next test. Stop when fatigue replaces reasoning. A smaller case tomorrow is more useful than another hour of copying tonight.

Seek specialist help when cause and effect remain invisible after examples are reduced, when accessibility or data-loss implications are unclear, or when an important repository, database or application state may be at risk. Good support should make the learner’s reasoning more independent.

Capstone practice with explained routes

1. project heading: model, boundary and recovery

Create a small project heading using a display typeface, a named stylistic alternate and a plain fallback. Combine “Characters and glyphs are different layers” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: font-variant-alternates changes which glyph a font uses for existing characters; it does not rewrite the document text. Apply: Copy the text, inspect the DOM string and compare it with the painted glyph. Verify: The character sequence remains unchanged while a supporting font may draw historical glyph forms. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

2. library poster: model, boundary and recovery

Create a small library poster using ornamental initials, ordinary body text and a readable print version. Combine “historical-forms has a direct keyword” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: The historical-forms keyword requests the OpenType historical forms feature when the selected font supports it. Apply: Use a documented test string, compare fonts and retain a readable normal control. Verify: A supporting font may substitute historical forms; a font without them can render no visible change. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

3. CCA badge: model, boundary and recovery

Create a small CCA badge using short team lettering, a controlled styleset and accessible text. Combine “character-variant() targets variant groups” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: character-variant() chooses named character-variant features and may include an alternate index through the mapping rule. Apply: List the affected characters from the font specimen and verify copied text remains original. Verify: The mapped character-variant feature is requested without altering a typed digit 4. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

4. science label: model, boundary and recovery

Create a small science label using stable characters, a character variant and copy-paste verification. Combine “annotation() selects alternate annotation forms” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: annotation(name) addresses a font’s alternate annotation forms through a named mapping. Apply: Provide actual explanatory text in HTML and treat the glyph choice only as typography. Verify: The marker may gain a circled annotation form, but no new semantic annotation is created. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

5. revision card: model, boundary and recovery

Create a small revision card using one decorative heading and unaffected explanation text. Combine “Fallbacks can remove the visible effect” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: If font fallback chooses another family, a mapping tied to the intended family may no longer apply. Apply: Use developer font inspection per character and test missing-glyph and loading-failure cases. Verify: The alternate can appear for Demo glyphs yet disappear for characters painted by the fallback. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

6. family invitation: model, boundary and recovery

Create a small family invitation using a swash-capable font, conservative spacing and fallback testing. Combine “The font shorthand can reset subproperties” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: Using the font shorthand can reset font-variant subproperties, including alternate selection, according to shorthand rules. Apply: Inspect cascade order and computed values after every shorthand in the rule set. Verify: The later shorthand can reset earlier font subproperty choices, so declaration order must be tested. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

7. web article: model, boundary and recovery

Create a small web article using inherited typography, scoped overrides and browser inspection. Combine “Visual regression needs stable fonts and strings” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: Alternate glyph tests are meaningful only when the font file, feature mapping, browser conditions and specimen text are controlled. Apply: Choose minimal diagnostic strings and store normal and alternate references together. Verify: A documented specimen makes it possible to tell a missing feature from a string that never exercised it. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

8. design-system specimen: model, boundary and recovery

Create a small design-system specimen using feature names, font files, screenshots and regression cases. Combine “The initial value is normal” with one later chapter. Include an ordinary case, a boundary, a deliberate failure and a recovery. Write the expected state before each operation.

Explained route. Start with: normal disables the alternate-feature selections controlled by this property. Apply: Reset one element to normal and compare computed style and rendering with the styled neighbour. Verify: The element requests none of the alternate categories represented by this property. Then add a second chapter whose boundary could change the outcome. A complete solution contains the input model, a trace, observed evidence, a correction and one transfer statement. The exact data may differ; the causal chain must be checkable.

Frequently asked questions

How long should a practice session be?

Use one complete prediction–observation–explanation cycle while attention remains good. Ten to twenty focused minutes can be enough.

Should every option or function be memorised?

No. Memorise the governing distinctions and practise retrieving the official reference. Understanding means predicting and explaining, not reciting a parameter list.

What if the result is correct but the explanation is weak?

Treat it as partial success. Ask for a trace and change one boundary. A reliable model survives controlled variation.

Is the shortest solution the best?

Not automatically. Prefer the solution whose semantics, failure modes and maintenance cost are easiest to justify for the actual project.

When should official documentation be used?

Use it whenever syntax, supported types, SQL dialect behaviour or Git version details matter. Primary documentation settles the current contract.

How can a parent help without technical expertise?

Ask what was predicted, where the first difference appeared, what evidence matters and which smaller example could isolate it.

How do we test transfer?

Change the context, vocabulary and one boundary. Require the learner to identify the invariant before using a tool.

What should be saved after practice?

Keep the corrected rule, one trace, one boundary case and the next question. Avoid storing pages of unexplained output.

Can these exercises replace backups?

No. Use disposable examples and proper backups. Learning should not endanger schoolwork, repositories or personal data.

What counts as mastery?

The learner can predict, verify, diagnose, recover and justify a choice across more than one context, while knowing when to consult the current reference.

Official and supporting references

Return to contents

Continue from here: Start Here · Tuition · Education · Pathways · Parenting 101 · All Site Routes

eduKate Punggol

Contact

83 Punggol Central, Singapore 828761

edu|Kate Bukit Timah

8 Fourth Avenue, Singapore 268674

By Appointment +65 8823 1234
admin@edukatesg.com

Email Us

When a child finally understands, school becomes less frightening and the future opens wider. Email us for the latest schedules and fees.

← 返回

感谢您的回复。 ✨

了解 eduKate Punggol 的更多信息

立即订阅以继续阅读并访问完整档案。

继续阅读