Small Group Tutorials

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

How to Master CSS font-feature-settings in Punggol Tuition

Student in a navy skirt and tie holds a notebook and raises a fist in a bright corridor.

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-feature-settings provides low-level control over OpenType font features through quoted four-character tags and optional non-negative values. It exists for specialised features without a suitable higher-level CSS property. Mastery means using the property sparingly, predicting its all-at-once inherited value, understanding that later low-level settings can override font-variant choices, and verifying actual glyph support in every selected font. 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. This is a low-level escape hatch

Back to contents

font-feature-settings directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS. 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 raw tags for familiar features that already have clearer semantic properties. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary.

For the This is a low-level escape hatch chapter on CSS font-feature-settings, 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 raw tags for familiar features that already have clearer semantic properties. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.chem { font-feature-settings: 'sinf'; }

Explained result. The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. 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: chemistry worksheet. Predict the rule using scientific inferiors, formula readability and a chosen typeface. 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 directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS.” Apply this procedure: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. The expected mechanism is: The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. For the chemistry worksheet, add one near-miss that exposes using raw tags for familiar features that already have clearer semantic properties. 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 alternates, fallback fonts and a plain-text meaning. 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 directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS.” Apply this procedure: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. The expected mechanism is: The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. For the library poster, add one near-miss that exposes using raw tags for familiar features that already have clearer semantic properties. 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 programme. Stress-test the rule using stylistic sets, headings and body-copy restraint. 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 directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS.” Apply this procedure: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. The expected mechanism is: The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. For the CCA programme, add one near-miss that exposes using raw tags for familiar features that already have clearer semantic properties. 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: transport table. Explain the rule using numeric alignment, semantic properties and fallback behaviour. 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 directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS.” Apply this procedure: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. The expected mechanism is: The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. For the transport table, add one near-miss that exposes using raw tags for familiar features that already have clearer semantic properties. 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 raw tags for familiar features that already have clearer semantic properties.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from This is a low-level escape hatch?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using raw tags for familiar features that already have clearer semantic properties be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny coding handout with ligatures, source-code clarity and a local opt-out. Include one ordinary case, one boundary and one deliberate failure caused by using raw tags for familiar features that already have clearer semantic properties. 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 directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS. It shows a trace, not only a final value. The ordinary case should demonstrate “The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For This is a low-level escape hatch, separate the documented CSS font-feature-settings 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 normal makes no request

Back to contents

normal means this property itself causes no change in glyph selection or positioning. 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 normal as a command that disables every feature the shaping engine would otherwise use. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Separate property requests from required and default features supplied by the font and shaping system.

For the The initial value normal makes no request chapter on CSS font-feature-settings, 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 normal as a command that disables every feature the shaping engine would otherwise use. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.note { font-feature-settings: normal; }

Explained result. The declaration adds no low-level feature request; it does not erase every default shaping 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: CCA programme. Contrast the rule using stylistic sets, headings and body-copy restraint. 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 means this property itself causes no change in glyph selection or positioning.” Apply this procedure: Separate property requests from required and default features supplied by the font and shaping system. The expected mechanism is: The declaration adds no low-level feature request; it does not erase every default shaping feature. For the CCA programme, add one near-miss that exposes reading normal as a command that disables every feature the shaping engine would otherwise use. 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: transport table. Stress-test the rule using numeric alignment, semantic properties and fallback behaviour. 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 means this property itself causes no change in glyph selection or positioning.” Apply this procedure: Separate property requests from required and default features supplied by the font and shaping system. The expected mechanism is: The declaration adds no low-level feature request; it does not erase every default shaping feature. For the transport table, add one near-miss that exposes reading normal as a command that disables every feature the shaping engine would otherwise use. 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: bilingual article. Explain the rule using script shaping, language metadata and font coverage. 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 means this property itself causes no change in glyph selection or positioning.” Apply this procedure: Separate property requests from required and default features supplied by the font and shaping system. The expected mechanism is: The declaration adds no low-level feature request; it does not erase every default shaping feature. For the bilingual article, add one near-miss that exposes reading normal as a command that disables every feature the shaping engine would otherwise use. 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: coding handout. Transfer the rule using ligatures, source-code clarity and a local opt-out. 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 means this property itself causes no change in glyph selection or positioning.” Apply this procedure: Separate property requests from required and default features supplied by the font and shaping system. The expected mechanism is: The declaration adds no low-level feature request; it does not erase every default shaping feature. For the coding handout, add one near-miss that exposes reading normal as a command that disables every feature the shaping engine would otherwise use. 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 normal as a command that disables every feature the shaping engine would otherwise use.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Separate property requests from required and default features supplied by the font and shaping system.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from The initial value normal makes no request?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing reading normal as a command that disables every feature the shaping engine would otherwise use be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny history display with historical forms, quotations and accessible reading. Include one ordinary case, one boundary and one deliberate failure caused by reading normal as a command that disables every feature the shaping engine would otherwise use. 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 means this property itself causes no change in glyph selection or positioning. It shows a trace, not only a final value. The ordinary case should demonstrate “The declaration adds no low-level feature request; it does not erase every default shaping feature.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Separate property requests from required and default features supplied by the font and shaping system. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For The initial value normal makes no request, separate the documented CSS font-feature-settings 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. Tags are quoted four-character strings

Back to contents

An OpenType feature tag is written as a quoted string containing exactly four ASCII characters. 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 writing an unquoted identifier or a tag with three or five characters. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Count characters, keep the tag quoted and let invalid test cases fail visibly.

For the Tags are quoted four-character strings chapter on CSS font-feature-settings, 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 writing an unquoted identifier or a tag with three or five characters. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.formula { font-feature-settings: 'sinf'; }

Explained result. sinf is a valid four-character tag string. 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: bilingual article. Stress-test the rule using script shaping, language metadata and font coverage. 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 “An OpenType feature tag is written as a quoted string containing exactly four ASCII characters.” Apply this procedure: Count characters, keep the tag quoted and let invalid test cases fail visibly. The expected mechanism is: sinf is a valid four-character tag string. For the bilingual article, add one near-miss that exposes writing an unquoted identifier or a tag with three or five characters. 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: coding handout. Explain the rule using ligatures, source-code clarity and a local opt-out. 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 “An OpenType feature tag is written as a quoted string containing exactly four ASCII characters.” Apply this procedure: Count characters, keep the tag quoted and let invalid test cases fail visibly. The expected mechanism is: sinf is a valid four-character tag string. For the coding handout, add one near-miss that exposes writing an unquoted identifier or a tag with three or five characters. 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: history display. Transfer the rule using historical forms, quotations and accessible reading. 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 “An OpenType feature tag is written as a quoted string containing exactly four ASCII characters.” Apply this procedure: Count characters, keep the tag quoted and let invalid test cases fail visibly. The expected mechanism is: sinf is a valid four-character tag string. For the history display, add one near-miss that exposes writing an unquoted identifier or a tag with three or five characters. 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 test page. Predict the rule using tag values, computed styles and screenshot comparisons. 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 “An OpenType feature tag is written as a quoted string containing exactly four ASCII characters.” Apply this procedure: Count characters, keep the tag quoted and let invalid test cases fail visibly. The expected mechanism is: sinf is a valid four-character tag string. For the design test page, add one near-miss that exposes writing an unquoted identifier or a tag with three or five characters. 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 writing an unquoted identifier or a tag with three or five characters.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Count characters, keep the tag quoted and let invalid test cases fail visibly.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Tags are quoted four-character strings?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing writing an unquoted identifier or a tag with three or five characters be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design test page with tag values, computed styles and screenshot comparisons. Include one ordinary case, one boundary and one deliberate failure caused by writing an unquoted identifier or a tag with three or five characters. 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: An OpenType feature tag is written as a quoted string containing exactly four ASCII characters. It shows a trace, not only a final value. The ordinary case should demonstrate “sinf is a valid four-character tag string.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Count characters, keep the tag quoted and let invalid test cases fail visibly. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Tags are quoted four-character strings, separate the documented CSS font-feature-settings 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. Feature tags are case-sensitive

Back to contents

The tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag. 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 normalising tags to lower case without checking the font definition. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Copy the exact tag from authoritative font documentation and test the selected file.

For the Feature tags are case-sensitive chapter on CSS font-feature-settings, 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 normalising tags to lower case without checking the font definition. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.custom { font-feature-settings: 'PKRN'; }

Explained result. PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. 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: history display. Explain the rule using historical forms, quotations and accessible reading. 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag.” Apply this procedure: Copy the exact tag from authoritative font documentation and test the selected file. The expected mechanism is: PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. For the history display, add one near-miss that exposes normalising tags to lower case without checking the font definition. 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 test page. Transfer the rule using tag values, computed styles and screenshot comparisons. 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag.” Apply this procedure: Copy the exact tag from authoritative font documentation and test the selected file. The expected mechanism is: PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. For the design test page, add one near-miss that exposes normalising tags to lower case without checking the font definition. 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: chemistry worksheet. Predict the rule using scientific inferiors, formula readability and a chosen typeface. 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag.” Apply this procedure: Copy the exact tag from authoritative font documentation and test the selected file. The expected mechanism is: PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. For the chemistry worksheet, add one near-miss that exposes normalising tags to lower case without checking the font definition. 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 alternates, fallback fonts and a plain-text meaning. 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag.” Apply this procedure: Copy the exact tag from authoritative font documentation and test the selected file. The expected mechanism is: PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. For the library poster, add one near-miss that exposes normalising tags to lower case without checking the font definition. 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 normalising tags to lower case without checking the font definition.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Copy the exact tag from authoritative font documentation and test the selected file.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Feature tags are case-sensitive?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing normalising tags to lower case without checking the font definition be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny chemistry worksheet with scientific inferiors, formula readability and a chosen typeface. Include one ordinary case, one boundary and one deliberate failure caused by normalising tags to lower case without checking the font definition. 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag. It shows a trace, not only a final value. The ordinary case should demonstrate “PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Copy the exact tag from authoritative font documentation and test the selected file. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Feature tags are case-sensitive, separate the documented CSS font-feature-settings 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. Omitted values mean one

Back to contents

A tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean 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 treating a bare tag as merely naming a feature without enabling it. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Expand the shorthand mentally and compare the computed request.

For the Omitted values mean one chapter on CSS font-feature-settings, 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 a bare tag as merely naming a feature without enabling it. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.chem { font-feature-settings: 'sinf'; }

Explained result. The declaration is equivalent to requesting sinf with value 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: chemistry worksheet. Transfer the rule using scientific inferiors, formula readability and a chosen typeface. 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 tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean feature.” Apply this procedure: Expand the shorthand mentally and compare the computed request. The expected mechanism is: The declaration is equivalent to requesting sinf with value 1. For the chemistry worksheet, add one near-miss that exposes treating a bare tag as merely naming a feature without enabling it. 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 alternates, fallback fonts and a plain-text meaning. 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 tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean feature.” Apply this procedure: Expand the shorthand mentally and compare the computed request. The expected mechanism is: The declaration is equivalent to requesting sinf with value 1. For the library poster, add one near-miss that exposes treating a bare tag as merely naming a feature without enabling it. 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 programme. Contrast the rule using stylistic sets, headings and body-copy restraint. 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 tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean feature.” Apply this procedure: Expand the shorthand mentally and compare the computed request. The expected mechanism is: The declaration is equivalent to requesting sinf with value 1. For the CCA programme, add one near-miss that exposes treating a bare tag as merely naming a feature without enabling it. 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: transport table. Stress-test the rule using numeric alignment, semantic properties and fallback behaviour. 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 tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean feature.” Apply this procedure: Expand the shorthand mentally and compare the computed request. The expected mechanism is: The declaration is equivalent to requesting sinf with value 1. For the transport table, add one near-miss that exposes treating a bare tag as merely naming a feature without enabling it. 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 a bare tag as merely naming a feature without enabling it.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Expand the shorthand mentally and compare the computed request.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Omitted values mean one?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing treating a bare tag as merely naming a feature without enabling it 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 alternates, fallback fonts and a plain-text meaning. Include one ordinary case, one boundary and one deliberate failure caused by treating a bare tag as merely naming a feature without enabling it. 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 tag without a following value is interpreted with value 1, which enables a boolean feature or selects index one for a non-boolean feature. It shows a trace, not only a final value. The ordinary case should demonstrate “The declaration is equivalent to requesting sinf with value 1.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Expand the shorthand mentally and compare the computed request. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Omitted values mean one, separate the documented CSS font-feature-settings 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. on and off map to one and zero

Back to contents

The keywords on and off are synonyms for the integer values 1 and 0. 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 application booleans with CSS syntax and generating invalid quoted values. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Generate one of the documented forms and inspect the computed style.

For the on and off map to one and zero chapter on CSS font-feature-settings, 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 application booleans with CSS syntax and generating invalid quoted values. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-feature-settings: 'dlig' off; }

Explained result. The declaration requests value 0 for dlig, disabling that feature at this low-level layer. 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 programme. Predict the rule using stylistic sets, headings and body-copy restraint. 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 keywords on and off are synonyms for the integer values 1 and 0.” Apply this procedure: Generate one of the documented forms and inspect the computed style. The expected mechanism is: The declaration requests value 0 for dlig, disabling that feature at this low-level layer. For the CCA programme, add one near-miss that exposes mixing application booleans with CSS syntax and generating invalid quoted values. 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: transport table. Contrast the rule using numeric alignment, semantic properties and fallback behaviour. 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 keywords on and off are synonyms for the integer values 1 and 0.” Apply this procedure: Generate one of the documented forms and inspect the computed style. The expected mechanism is: The declaration requests value 0 for dlig, disabling that feature at this low-level layer. For the transport table, add one near-miss that exposes mixing application booleans with CSS syntax and generating invalid quoted values. 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: bilingual article. Stress-test the rule using script shaping, language metadata and font coverage. 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 keywords on and off are synonyms for the integer values 1 and 0.” Apply this procedure: Generate one of the documented forms and inspect the computed style. The expected mechanism is: The declaration requests value 0 for dlig, disabling that feature at this low-level layer. For the bilingual article, add one near-miss that exposes mixing application booleans with CSS syntax and generating invalid quoted values. 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: coding handout. Explain the rule using ligatures, source-code clarity and a local opt-out. 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 keywords on and off are synonyms for the integer values 1 and 0.” Apply this procedure: Generate one of the documented forms and inspect the computed style. The expected mechanism is: The declaration requests value 0 for dlig, disabling that feature at this low-level layer. For the coding handout, add one near-miss that exposes mixing application booleans with CSS syntax and generating invalid quoted values. 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 application booleans with CSS syntax and generating invalid quoted values.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Generate one of the documented forms and inspect the computed style.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from on and off map to one and zero?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing mixing application booleans with CSS syntax and generating invalid quoted values be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny CCA programme with stylistic sets, headings and body-copy restraint. Include one ordinary case, one boundary and one deliberate failure caused by mixing application booleans with CSS syntax and generating invalid quoted values. 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 keywords on and off are synonyms for the integer values 1 and 0. It shows a trace, not only a final value. The ordinary case should demonstrate “The declaration requests value 0 for dlig, disabling that feature at this low-level layer.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Generate one of the documented forms and inspect the computed style. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For on and off map to one and zero, separate the documented CSS font-feature-settings 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. Non-negative integers can select variants

Back to contents

A feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant. 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 every feature accepts only zero or one. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Read the chosen font’s feature definition and test supported indexes rather than guessing.

For the Non-negative integers can select variants chapter on CSS font-feature-settings, 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 every feature accepts only zero or one. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.ornament { font-feature-settings: 'nalt' 3; }

Explained result. The rule requests selection index 3 for the nalt feature in the selected font. 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: bilingual article. Contrast the rule using script shaping, language metadata and font coverage. 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 feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant.” Apply this procedure: Read the chosen font’s feature definition and test supported indexes rather than guessing. The expected mechanism is: The rule requests selection index 3 for the nalt feature in the selected font. For the bilingual article, add one near-miss that exposes assuming every feature accepts only zero or one. 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: coding handout. Stress-test the rule using ligatures, source-code clarity and a local opt-out. 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 feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant.” Apply this procedure: Read the chosen font’s feature definition and test supported indexes rather than guessing. The expected mechanism is: The rule requests selection index 3 for the nalt feature in the selected font. For the coding handout, add one near-miss that exposes assuming every feature accepts only zero or one. 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: history display. Explain the rule using historical forms, quotations and accessible reading. 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 feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant.” Apply this procedure: Read the chosen font’s feature definition and test supported indexes rather than guessing. The expected mechanism is: The rule requests selection index 3 for the nalt feature in the selected font. For the history display, add one near-miss that exposes assuming every feature accepts only zero or one. 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 test page. Transfer the rule using tag values, computed styles and screenshot comparisons. 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 feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant.” Apply this procedure: Read the chosen font’s feature definition and test supported indexes rather than guessing. The expected mechanism is: The rule requests selection index 3 for the nalt feature in the selected font. For the design test page, add one near-miss that exposes assuming every feature accepts only zero or one. 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 every feature accepts only zero or one.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Read the chosen font’s feature definition and test supported indexes rather than guessing.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Non-negative integers can select variants?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming every feature accepts only zero or one be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny transport table with numeric alignment, semantic properties and fallback behaviour. Include one ordinary case, one boundary and one deliberate failure caused by assuming every feature accepts only zero or one. 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 feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant. It shows a trace, not only a final value. The ordinary case should demonstrate “The rule requests selection index 3 for the nalt feature in the selected font.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Read the chosen font’s feature definition and test supported indexes rather than guessing. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Non-negative integers can select variants, separate the documented CSS font-feature-settings 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. Multiple features need commas

Back to contents

A list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries. 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 writing two quoted tags side by side and assuming the declaration partially works. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Validate the whole declaration and add one feature at a time.

For the Multiple features need commas chapter on CSS font-feature-settings, 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 writing two quoted tags side by side and assuming the declaration partially works. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-feature-settings: 'sinf', 'twid'; }

Explained result. The comma creates two valid feature requests, each with the default value one. 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: history display. Stress-test the rule using historical forms, quotations and accessible reading. 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 list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries.” Apply this procedure: Validate the whole declaration and add one feature at a time. The expected mechanism is: The comma creates two valid feature requests, each with the default value one. For the history display, add one near-miss that exposes writing two quoted tags side by side and assuming the declaration partially 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 test page. Explain the rule using tag values, computed styles and screenshot comparisons. 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 list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries.” Apply this procedure: Validate the whole declaration and add one feature at a time. The expected mechanism is: The comma creates two valid feature requests, each with the default value one. For the design test page, add one near-miss that exposes writing two quoted tags side by side and assuming the declaration partially 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: chemistry worksheet. Transfer the rule using scientific inferiors, formula readability and a chosen typeface. 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 list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries.” Apply this procedure: Validate the whole declaration and add one feature at a time. The expected mechanism is: The comma creates two valid feature requests, each with the default value one. For the chemistry worksheet, add one near-miss that exposes writing two quoted tags side by side and assuming the declaration partially 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. Predict the rule using ornamental alternates, fallback fonts and a plain-text meaning. 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 list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries.” Apply this procedure: Validate the whole declaration and add one feature at a time. The expected mechanism is: The comma creates two valid feature requests, each with the default value one. For the library poster, add one near-miss that exposes writing two quoted tags side by side and assuming the declaration partially 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 writing two quoted tags side by side and assuming the declaration partially works.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Validate the whole declaration and add one feature at a time.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Multiple features need commas?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing writing two quoted tags side by side and assuming the declaration partially works be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny bilingual article with script shaping, language metadata and font coverage. Include one ordinary case, one boundary and one deliberate failure caused by writing two quoted tags side by side and assuming the declaration partially 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: A list of feature-tag values is comma-delimited; whitespace alone does not separate two feature entries. It shows a trace, not only a final value. The ordinary case should demonstrate “The comma creates two valid feature requests, each with the default value one.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Validate the whole declaration and add one feature at a time. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Multiple features need commas, separate the documented CSS font-feature-settings 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. The property value is replaced as a whole

Back to contents

Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration. 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 child tag and expecting inherited tags to remain automatically. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Restate the complete desired list or redesign with higher-level properties and narrower scopes.

For the The property value is replaced as a whole chapter on CSS font-feature-settings, 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 child tag and expecting inherited tags to remain automatically. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.parent { font-feature-settings:'sinf'; }
.child { font-feature-settings:'ss01'; }

Explained result. The child’s specified value is ss01 only; it does not merge sinf into the new list. 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: chemistry worksheet. Explain the rule using scientific inferiors, formula readability and a chosen typeface. 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 “Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration.” Apply this procedure: Restate the complete desired list or redesign with higher-level properties and narrower scopes. The expected mechanism is: The child’s specified value is ss01 only; it does not merge sinf into the new list. For the chemistry worksheet, add one near-miss that exposes declaring one child tag and expecting inherited tags to remain automatically. 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 alternates, fallback fonts and a plain-text meaning. 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 “Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration.” Apply this procedure: Restate the complete desired list or redesign with higher-level properties and narrower scopes. The expected mechanism is: The child’s specified value is ss01 only; it does not merge sinf into the new list. For the library poster, add one near-miss that exposes declaring one child tag and expecting inherited tags to remain automatically. 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 programme. Predict the rule using stylistic sets, headings and body-copy restraint. 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 “Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration.” Apply this procedure: Restate the complete desired list or redesign with higher-level properties and narrower scopes. The expected mechanism is: The child’s specified value is ss01 only; it does not merge sinf into the new list. For the CCA programme, add one near-miss that exposes declaring one child tag and expecting inherited tags to remain automatically. 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: transport table. Contrast the rule using numeric alignment, semantic properties and fallback behaviour. 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 “Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration.” Apply this procedure: Restate the complete desired list or redesign with higher-level properties and narrower scopes. The expected mechanism is: The child’s specified value is ss01 only; it does not merge sinf into the new list. For the transport table, add one near-miss that exposes declaring one child tag and expecting inherited tags to remain automatically. 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 child tag and expecting inherited tags to remain automatically.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Restate the complete desired list or redesign with higher-level properties and narrower scopes.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from The property value is replaced as a whole?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing declaring one child tag and expecting inherited tags to remain automatically be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny coding handout with ligatures, source-code clarity and a local opt-out. Include one ordinary case, one boundary and one deliberate failure caused by declaring one child tag and expecting inherited tags to remain automatically. 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: Unlike separate font-variant subproperties, an inherited font-feature-settings list cannot be incrementally amended by adding one tag in a descendant declaration. It shows a trace, not only a final value. The ordinary case should demonstrate “The child’s specified value is ss01 only; it does not merge sinf into the new list.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Restate the complete desired list or redesign with higher-level properties and narrower scopes. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For The property value is replaced as a whole, separate the documented CSS font-feature-settings 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. The property is inherited

Back to contents

The computed value normally passes from an element to descendants until another declaration wins. 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 an experimental feature on a broad container and unintentionally changing prose, labels or code. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Scope the rule to the smallest semantic element and inspect nested content.

For the The property is inherited chapter on CSS font-feature-settings, 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 an experimental feature on a broad container and unintentionally changing prose, labels or code. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.article { font-feature-settings:'hist'; }
.article code { font-feature-settings:normal; }

Explained result. Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the 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 programme. Transfer the rule using stylistic sets, headings and body-copy restraint. 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 computed value normally passes from an element to descendants until another declaration wins.” Apply this procedure: Scope the rule to the smallest semantic element and inspect nested content. The expected mechanism is: Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the property. For the CCA programme, add one near-miss that exposes placing an experimental feature on a broad container and unintentionally changing prose, labels or code. 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: transport table. Predict the rule using numeric alignment, semantic properties and fallback behaviour. 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 computed value normally passes from an element to descendants until another declaration wins.” Apply this procedure: Scope the rule to the smallest semantic element and inspect nested content. The expected mechanism is: Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the property. For the transport table, add one near-miss that exposes placing an experimental feature on a broad container and unintentionally changing prose, labels or code. 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: bilingual article. Contrast the rule using script shaping, language metadata and font coverage. 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 computed value normally passes from an element to descendants until another declaration wins.” Apply this procedure: Scope the rule to the smallest semantic element and inspect nested content. The expected mechanism is: Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the property. For the bilingual article, add one near-miss that exposes placing an experimental feature on a broad container and unintentionally changing prose, labels or code. 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: coding handout. Stress-test the rule using ligatures, source-code clarity and a local opt-out. 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 computed value normally passes from an element to descendants until another declaration wins.” Apply this procedure: Scope the rule to the smallest semantic element and inspect nested content. The expected mechanism is: Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the property. For the coding handout, add one near-miss that exposes placing an experimental feature on a broad container and unintentionally changing prose, labels or code. 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 an experimental feature on a broad container and unintentionally changing prose, labels or code.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Scope the rule to the smallest semantic element and inspect nested content.” 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-feature-settings 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 an experimental feature on a broad container and unintentionally changing prose, labels or code be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny history display with historical forms, quotations and accessible reading. Include one ordinary case, one boundary and one deliberate failure caused by placing an experimental feature on a broad container and unintentionally changing prose, labels or code. 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 computed value normally passes from an element to descendants until another declaration wins. It shows a trace, not only a final value. The ordinary case should demonstrate “Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the property.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Scope the rule to the smallest semantic element and inspect nested content. 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-feature-settings 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. Duplicate tags use the last value

Back to contents

If the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed. 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 the first occurrence as authoritative or relying on duplicate noise. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Eliminate duplicates in source and verify the computed map.

For the Duplicate tags use the last value chapter on CSS font-feature-settings, 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 the first occurrence as authoritative or relying on duplicate noise. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-feature-settings:'dlig' on, 'dlig' off; }

Explained result. The final effective dlig value is zero because the last appearance wins. 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: bilingual article. Predict the rule using script shaping, language metadata and font coverage. 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 the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed.” Apply this procedure: Eliminate duplicates in source and verify the computed map. The expected mechanism is: The final effective dlig value is zero because the last appearance wins. For the bilingual article, add one near-miss that exposes reading the first occurrence as authoritative or relying on duplicate noise. 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: coding handout. Contrast the rule using ligatures, source-code clarity and a local opt-out. 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 the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed.” Apply this procedure: Eliminate duplicates in source and verify the computed map. The expected mechanism is: The final effective dlig value is zero because the last appearance wins. For the coding handout, add one near-miss that exposes reading the first occurrence as authoritative or relying on duplicate noise. 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: history display. Stress-test the rule using historical forms, quotations and accessible reading. 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 the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed.” Apply this procedure: Eliminate duplicates in source and verify the computed map. The expected mechanism is: The final effective dlig value is zero because the last appearance wins. For the history display, add one near-miss that exposes reading the first occurrence as authoritative or relying on duplicate noise. 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 test page. Explain the rule using tag values, computed styles and screenshot comparisons. 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 the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed.” Apply this procedure: Eliminate duplicates in source and verify the computed map. The expected mechanism is: The final effective dlig value is zero because the last appearance wins. For the design test page, add one near-miss that exposes reading the first occurrence as authoritative or relying on duplicate noise. 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 the first occurrence as authoritative or relying on duplicate noise.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Eliminate duplicates in source and verify the computed map.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Duplicate tags use the last value?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing reading the first occurrence as authoritative or relying on duplicate noise be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design test page with tag values, computed styles and screenshot comparisons. Include one ordinary case, one boundary and one deliberate failure caused by reading the first occurrence as authoritative or relying on duplicate noise. 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 the same feature tag appears more than once, the last occurrence supplies the computed value and earlier duplicates are removed. It shows a trace, not only a final value. The ordinary case should demonstrate “The final effective dlig value is zero because the last appearance wins.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Eliminate duplicates in source and verify the computed map. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Duplicate tags use the last value, separate the documented CSS font-feature-settings 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. Computed tags are de-duplicated and ordered

Back to contents

The computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order. 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 expecting computed-style serialization to preserve author source order. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Compare semantic tag-value pairs rather than raw declaration text.

For the Computed tags are de-duplicated and ordered chapter on CSS font-feature-settings, 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 expecting computed-style serialization to preserve author source order. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-feature-settings:'twid', 'sinf'; }

Explained result. Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order. 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: history display. Contrast the rule using historical forms, quotations and accessible reading. 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 computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order.” Apply this procedure: Compare semantic tag-value pairs rather than raw declaration text. The expected mechanism is: Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order. For the history display, add one near-miss that exposes expecting computed-style serialization to preserve author source order. 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 test page. Stress-test the rule using tag values, computed styles and screenshot comparisons. 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 computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order.” Apply this procedure: Compare semantic tag-value pairs rather than raw declaration text. The expected mechanism is: Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order. For the design test page, add one near-miss that exposes expecting computed-style serialization to preserve author source order. 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: chemistry worksheet. Explain the rule using scientific inferiors, formula readability and a chosen typeface. 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 computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order.” Apply this procedure: Compare semantic tag-value pairs rather than raw declaration text. The expected mechanism is: Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order. For the chemistry worksheet, add one near-miss that exposes expecting computed-style serialization to preserve author source order. 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 alternates, fallback fonts and a plain-text meaning. 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 computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order.” Apply this procedure: Compare semantic tag-value pairs rather than raw declaration text. The expected mechanism is: Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order. For the library poster, add one near-miss that exposes expecting computed-style serialization to preserve author source order. 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 expecting computed-style serialization to preserve author source order.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Compare semantic tag-value pairs rather than raw declaration text.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Computed tags are de-duplicated and ordered?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing expecting computed-style serialization to preserve author source order be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny chemistry worksheet with scientific inferiors, formula readability and a chosen typeface. Include one ordinary case, one boundary and one deliberate failure caused by expecting computed-style serialization to preserve author source order. 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 computed value represents a map of feature tags, de-duplicates them and sorts tags by code-unit order. It shows a trace, not only a final value. The ordinary case should demonstrate “Computed-style output may serialize the de-duplicated map in canonical tag order rather than the written order.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Compare semantic tag-value pairs rather than raw declaration text. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Computed tags are de-duplicated and ordered, separate the documented CSS font-feature-settings 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. Unsupported tags are ignored by the font

Back to contents

A valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags. 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 valid CSS guarantees visible alternate glyphs. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Confirm the actual font file, feature table, glyph coverage and rendered result.

For the Unsupported tags are ignored by the font chapter on CSS font-feature-settings, 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 valid CSS guarantees visible alternate glyphs. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.sample { font-feature-settings:'sinf'; }

Explained result. If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. 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: chemistry worksheet. Stress-test the rule using scientific inferiors, formula readability and a chosen typeface. 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 valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags.” Apply this procedure: Confirm the actual font file, feature table, glyph coverage and rendered result. The expected mechanism is: If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. For the chemistry worksheet, add one near-miss that exposes assuming valid CSS guarantees visible alternate glyphs. 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 alternates, fallback fonts and a plain-text meaning. 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 valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags.” Apply this procedure: Confirm the actual font file, feature table, glyph coverage and rendered result. The expected mechanism is: If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. For the library poster, add one near-miss that exposes assuming valid CSS guarantees visible alternate glyphs. 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 programme. Transfer the rule using stylistic sets, headings and body-copy restraint. 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 valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags.” Apply this procedure: Confirm the actual font file, feature table, glyph coverage and rendered result. The expected mechanism is: If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. For the CCA programme, add one near-miss that exposes assuming valid CSS guarantees visible alternate glyphs. 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: transport table. Predict the rule using numeric alignment, semantic properties and fallback behaviour. 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 valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags.” Apply this procedure: Confirm the actual font file, feature table, glyph coverage and rendered result. The expected mechanism is: If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. For the transport table, add one near-miss that exposes assuming valid CSS guarantees visible alternate glyphs. 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 valid CSS guarantees visible alternate glyphs.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Confirm the actual font file, feature table, glyph coverage and rendered result.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Unsupported tags are ignored by the font?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming valid CSS guarantees visible alternate glyphs 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 alternates, fallback fonts and a plain-text meaning. Include one ordinary case, one boundary and one deliberate failure caused by assuming valid CSS guarantees visible alternate glyphs. 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 valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags. It shows a trace, not only a final value. The ordinary case should demonstrate “If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Confirm the actual font file, feature table, glyph coverage and rendered result. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Unsupported tags are ignored by the font, separate the documented CSS font-feature-settings 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. Font fallback changes the feature landscape

Back to contents

Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes. 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 testing one Latin phrase and generalising to every script and fallback face. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack.

For the Font fallback changes the feature landscape chapter on CSS font-feature-settings, 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 testing one Latin phrase and generalising to every script and fallback face. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.mixed { font-family: FeatureSerif, serif; font-feature-settings:'ss01'; }

Explained result. ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face. 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 programme. Explain the rule using stylistic sets, headings and body-copy restraint. 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 “Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes.” Apply this procedure: Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack. The expected mechanism is: ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face. For the CCA programme, add one near-miss that exposes testing one Latin phrase and generalising to every script and fallback face. 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: transport table. Transfer the rule using numeric alignment, semantic properties and fallback behaviour. 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 “Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes.” Apply this procedure: Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack. The expected mechanism is: ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face. For the transport table, add one near-miss that exposes testing one Latin phrase and generalising to every script and fallback face. 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: bilingual article. Predict the rule using script shaping, language metadata and font coverage. 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 “Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes.” Apply this procedure: Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack. The expected mechanism is: ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face. For the bilingual article, add one near-miss that exposes testing one Latin phrase and generalising to every script and fallback face. 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: coding handout. Contrast the rule using ligatures, source-code clarity and a local opt-out. 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 “Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes.” Apply this procedure: Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack. The expected mechanism is: ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face. For the coding handout, add one near-miss that exposes testing one Latin phrase and generalising to every script and fallback face. 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 testing one Latin phrase and generalising to every script and fallback face.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Font fallback changes the feature landscape?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing testing one Latin phrase and generalising to every script and fallback face be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny CCA programme with stylistic sets, headings and body-copy restraint. Include one ordinary case, one boundary and one deliberate failure caused by testing one Latin phrase and generalising to every script and fallback face. 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: Different characters may be drawn from different fallback fonts, each with its own OpenType features and indexes. It shows a trace, not only a final value. The ordinary case should demonstrate “ss01 may work in FeatureSerif and do nothing or mean something different in a fallback face.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Use representative characters, inspect the rendered font and avoid font-specific indexes across an uncontrolled stack. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Font fallback changes the feature landscape, separate the documented CSS font-feature-settings 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. Prefer higher-level properties for common features

Back to contents

font-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack. 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 kern, liga, dlig, onum or tnum tags merely because they look concise. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control.

For the Prefer higher-level properties for common features chapter on CSS font-feature-settings, 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 kern, liga, dlig, onum or tnum tags merely because they look concise. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.price { font-variant-numeric: tabular-nums; }

Explained result. The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”. 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: bilingual article. Transfer the rule using script shaping, language metadata and font coverage. 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-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack.” Apply this procedure: Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control. The expected mechanism is: The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”. For the bilingual article, add one near-miss that exposes using kern, liga, dlig, onum or tnum tags merely because they look concise. 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: coding handout. Predict the rule using ligatures, source-code clarity and a local opt-out. 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-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack.” Apply this procedure: Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control. The expected mechanism is: The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”. For the coding handout, add one near-miss that exposes using kern, liga, dlig, onum or tnum tags merely because they look concise. 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: history display. Contrast the rule using historical forms, quotations and accessible reading. 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-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack.” Apply this procedure: Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control. The expected mechanism is: The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”. For the history display, add one near-miss that exposes using kern, liga, dlig, onum or tnum tags merely because they look concise. 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 test page. Stress-test the rule using tag values, computed styles and screenshot comparisons. 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-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack.” Apply this procedure: Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control. The expected mechanism is: The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”. For the design test page, add one near-miss that exposes using kern, liga, dlig, onum or tnum tags merely because they look concise. 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 kern, liga, dlig, onum or tnum tags merely because they look concise.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Prefer higher-level properties for common features?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing using kern, liga, dlig, onum or tnum tags merely because they look concise be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny transport table with numeric alignment, semantic properties and fallback behaviour. Include one ordinary case, one boundary and one deliberate failure caused by using kern, liga, dlig, onum or tnum tags merely because they look concise. 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-kerning and font-variant subproperties cascade independently, communicate intent and may have defined synthesis behaviour that raw tags lack. It shows a trace, not only a final value. The ordinary case should demonstrate “The semantic property states numeric-width intent more clearly than font-feature-settings: “tnum”.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Replace raw tags with the corresponding semantic property unless a verified exception requires the low-level control. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Prefer higher-level properties for common features, separate the documented CSS font-feature-settings 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. Low-level settings resolve after font-variant

Back to contents

In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request. 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 a later selector using font-variant always defeats a raw tag regardless of feature resolution. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Trace cascade for each property first, then trace the documented feature application order.

For the Low-level settings resolve after font-variant chapter on CSS font-feature-settings, 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 a later selector using font-variant always defeats a raw tag regardless of feature resolution. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

span { font-feature-settings:'dlig'; }
span.special { font-variant-ligatures:no-discretionary-ligatures; }

Explained result. Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. 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: history display. Predict the rule using historical forms, quotations and accessible reading. 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 “In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request.” Apply this procedure: Trace cascade for each property first, then trace the documented feature application order. The expected mechanism is: Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. For the history display, add one near-miss that exposes assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution. 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 test page. Contrast the rule using tag values, computed styles and screenshot comparisons. 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 “In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request.” Apply this procedure: Trace cascade for each property first, then trace the documented feature application order. The expected mechanism is: Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. For the design test page, add one near-miss that exposes assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution. 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: chemistry worksheet. Stress-test the rule using scientific inferiors, formula readability and a chosen typeface. 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 “In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request.” Apply this procedure: Trace cascade for each property first, then trace the documented feature application order. The expected mechanism is: Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. For the chemistry worksheet, add one near-miss that exposes assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution. 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 alternates, fallback fonts and a plain-text meaning. 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 “In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request.” Apply this procedure: Trace cascade for each property first, then trace the documented feature application order. The expected mechanism is: Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. For the library poster, add one near-miss that exposes assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution. 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 a later selector using font-variant always defeats a raw tag regardless of feature resolution.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Trace cascade for each property first, then trace the documented feature application order.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Low-level settings resolve after font-variant?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny bilingual article with script shaping, language metadata and font coverage. Include one ordinary case, one boundary and one deliberate failure caused by assuming a later selector using font-variant always defeats a raw tag regardless of feature resolution. 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: In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request. It shows a trace, not only a final value. The ordinary case should demonstrate “Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Trace cascade for each property first, then trace the documented feature application order. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Low-level settings resolve after font-variant, separate the documented CSS font-feature-settings 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 shorthands do not reset this property

Back to contents

The font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor. 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 a new font shorthand cleared every previous font-related control. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Inspect computed font-feature-settings explicitly when debugging inherited or old rules.

For the Font shorthands do not reset this property chapter on CSS font-feature-settings, 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 a new font shorthand cleared every previous font-related control. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

.card { font-feature-settings:'sinf'; font:16px/1.5 serif; }

Explained result. The low-level feature setting remains unless another declaration changes 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: chemistry worksheet. Contrast the rule using scientific inferiors, formula readability and a chosen typeface. 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 font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor.” Apply this procedure: Inspect computed font-feature-settings explicitly when debugging inherited or old rules. The expected mechanism is: The low-level feature setting remains unless another declaration changes it. For the chemistry worksheet, add one near-miss that exposes assuming a new font shorthand cleared every previous font-related control. 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 alternates, fallback fonts and a plain-text meaning. 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 font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor.” Apply this procedure: Inspect computed font-feature-settings explicitly when debugging inherited or old rules. The expected mechanism is: The low-level feature setting remains unless another declaration changes it. For the library poster, add one near-miss that exposes assuming a new font shorthand cleared every previous font-related control. 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 programme. Explain the rule using stylistic sets, headings and body-copy restraint. 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 font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor.” Apply this procedure: Inspect computed font-feature-settings explicitly when debugging inherited or old rules. The expected mechanism is: The low-level feature setting remains unless another declaration changes it. For the CCA programme, add one near-miss that exposes assuming a new font shorthand cleared every previous font-related control. 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: transport table. Transfer the rule using numeric alignment, semantic properties and fallback behaviour. 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 font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor.” Apply this procedure: Inspect computed font-feature-settings explicitly when debugging inherited or old rules. The expected mechanism is: The low-level feature setting remains unless another declaration changes it. For the transport table, add one near-miss that exposes assuming a new font shorthand cleared every previous font-related control. 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 a new font shorthand cleared every previous font-related control.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Inspect computed font-feature-settings explicitly when debugging inherited or old rules.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Font shorthands do not reset this property?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing assuming a new font shorthand cleared every previous font-related control be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny coding handout with ligatures, source-code clarity and a local opt-out. Include one ordinary case, one boundary and one deliberate failure caused by assuming a new font shorthand cleared every previous font-related control. 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 font and font-variant shorthands do not reset font-feature-settings, so a low-level request can survive a typography refactor. It shows a trace, not only a final value. The ordinary case should demonstrate “The low-level feature setting remains unless another declaration changes it.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Inspect computed font-feature-settings explicitly when debugging inherited or old rules. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Font shorthands do not reset this property, separate the documented CSS font-feature-settings 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. Computed style cannot prove glyph support

Back to contents

A browser can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution. 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 computed declaration a successful visual test. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Pair computed-style inspection with rendered-font inspection and representative visual fixtures.

For the Computed style cannot prove glyph support chapter on CSS font-feature-settings, 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 computed declaration a successful visual test. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

getComputedStyle(document.querySelector('.sample')).fontFeatureSettings

Explained result. The returned CSS value confirms cascade and parsing, not that a visible alternate exists. 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 programme. Stress-test the rule using stylistic sets, headings and body-copy restraint. 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 can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution.” Apply this procedure: Pair computed-style inspection with rendered-font inspection and representative visual fixtures. The expected mechanism is: The returned CSS value confirms cascade and parsing, not that a visible alternate exists. For the CCA programme, add one near-miss that exposes calling a computed declaration a successful visual test. 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: transport table. Explain the rule using numeric alignment, semantic properties and fallback behaviour. 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 can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution.” Apply this procedure: Pair computed-style inspection with rendered-font inspection and representative visual fixtures. The expected mechanism is: The returned CSS value confirms cascade and parsing, not that a visible alternate exists. For the transport table, add one near-miss that exposes calling a computed declaration a successful visual test. 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: bilingual article. Transfer the rule using script shaping, language metadata and font coverage. 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 can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution.” Apply this procedure: Pair computed-style inspection with rendered-font inspection and representative visual fixtures. The expected mechanism is: The returned CSS value confirms cascade and parsing, not that a visible alternate exists. For the bilingual article, add one near-miss that exposes calling a computed declaration a successful visual test. 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: coding handout. Predict the rule using ligatures, source-code clarity and a local opt-out. 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 can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution.” Apply this procedure: Pair computed-style inspection with rendered-font inspection and representative visual fixtures. The expected mechanism is: The returned CSS value confirms cascade and parsing, not that a visible alternate exists. For the coding handout, add one near-miss that exposes calling a computed declaration a successful visual test. 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 computed declaration a successful visual test.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Pair computed-style inspection with rendered-font inspection and representative visual fixtures.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Computed style cannot prove glyph support?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing calling a computed declaration a successful visual test be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny history display with historical forms, quotations and accessible reading. Include one ordinary case, one boundary and one deliberate failure caused by calling a computed declaration a successful visual test. 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 can preserve a valid feature request in computed style even when the active font lacks the feature or relevant glyph substitution. It shows a trace, not only a final value. The ordinary case should demonstrate “The returned CSS value confirms cascade and parsing, not that a visible alternate exists.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Pair computed-style inspection with rendered-font inspection and representative visual fixtures. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Computed style cannot prove glyph support, separate the documented CSS font-feature-settings 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. Accessibility and meaning stay in the content layer

Back to contents

Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup. 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 encoding status, pronunciation or mathematical meaning only through a decorative alternate. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Preserve meaningful characters and structure, then treat font features as presentation subject to fallback.

For the Accessibility and meaning stay in the content layer chapter on CSS font-feature-settings, 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 encoding status, pronunciation or mathematical meaning only through a decorative alternate. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

<span class="formula">H2O</span>

Explained result. The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. 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: bilingual article. Explain the rule using script shaping, language metadata and font coverage. 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 “Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup.” Apply this procedure: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. The expected mechanism is: The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. For the bilingual article, add one near-miss that exposes encoding status, pronunciation or mathematical meaning only through a 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: coding handout. Transfer the rule using ligatures, source-code clarity and a local opt-out. 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 “Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup.” Apply this procedure: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. The expected mechanism is: The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. For the coding handout, add one near-miss that exposes encoding status, pronunciation or mathematical meaning only through a 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: history display. Predict the rule using historical forms, quotations and accessible reading. 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 “Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup.” Apply this procedure: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. The expected mechanism is: The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. For the history display, add one near-miss that exposes encoding status, pronunciation or mathematical meaning only through a 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: design test page. Contrast the rule using tag values, computed styles and screenshot comparisons. 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 “Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup.” Apply this procedure: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. The expected mechanism is: The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. For the design test page, add one near-miss that exposes encoding status, pronunciation or mathematical meaning only through a 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 encoding status, pronunciation or mathematical meaning only through a decorative alternate.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Preserve meaningful characters and structure, then treat font features as presentation subject to fallback.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Accessibility and meaning stay in the content layer?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing encoding status, pronunciation or mathematical meaning only through a decorative alternate be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny design test page with tag values, computed styles and screenshot comparisons. Include one ordinary case, one boundary and one deliberate failure caused by encoding status, pronunciation or mathematical meaning only through a 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: Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup. It shows a trace, not only a final value. The ordinary case should demonstrate “The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Accessibility and meaning stay in the content layer, separate the documented CSS font-feature-settings 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. Build a font-specific verification matrix

Back to contents

A reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility. 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 approving one screenshot on one device and calling the feature portable. It matters because the output may look reasonable while the ownership, ordering, identity or safety rule is wrong. Record browser, font file, script sample, expected substitution and a readable no-feature fallback.

For the Build a font-specific verification matrix chapter on CSS font-feature-settings, 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 approving one screenshot on one device and calling the feature portable. Explain the earliest difference with one causal sentence, then repeat only the smallest changed case.

Core worked example

const samples=['normal','supported tag','unsupported tag','fallback face'];

Explained result. The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths 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: history display. Transfer the rule using historical forms, quotations and accessible reading. 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 reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility.” Apply this procedure: Record browser, font file, script sample, expected substitution and a readable no-feature fallback. The expected mechanism is: The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths change. For the history display, add one near-miss that exposes approving one screenshot on one device and calling the feature portable. 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 test page. Predict the rule using tag values, computed styles and screenshot comparisons. 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 reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility.” Apply this procedure: Record browser, font file, script sample, expected substitution and a readable no-feature fallback. The expected mechanism is: The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths change. For the design test page, add one near-miss that exposes approving one screenshot on one device and calling the feature portable. 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: chemistry worksheet. Contrast the rule using scientific inferiors, formula readability and a chosen typeface. 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 reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility.” Apply this procedure: Record browser, font file, script sample, expected substitution and a readable no-feature fallback. The expected mechanism is: The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths change. For the chemistry worksheet, add one near-miss that exposes approving one screenshot on one device and calling the feature portable. 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 alternates, fallback fonts and a plain-text meaning. 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 reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility.” Apply this procedure: Record browser, font file, script sample, expected substitution and a readable no-feature fallback. The expected mechanism is: The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths change. For the library poster, add one near-miss that exposes approving one screenshot on one device and calling the feature portable. 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 approving one screenshot on one device and calling the feature portable.
  • Evidence check: separate a printed value from identity, ordering, ownership, type or repository state.
  • Repair check: use the reversible procedure “Record browser, font file, script sample, expected substitution and a readable no-feature fallback.” 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-feature-settings syntax. For this chapter, useful prompts are: “What did you expect from Build a font-specific verification matrix?”, “Which state changed first?”, “What evidence tests that prediction?”, and “Can the case exposing approving one screenshot on one device and calling the feature portable be made smaller?” The learner, not the parent, should supply the technical explanation.

Practice with an explained answer

Question. Build a tiny chemistry worksheet with scientific inferiors, formula readability and a chosen typeface. Include one ordinary case, one boundary and one deliberate failure caused by approving one screenshot on one device and calling the feature portable. 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 reliable implementation tests syntax, inheritance, cascade, duplicates, high-level conflicts, actual faces, fallback characters, unsupported tags and accessibility. It shows a trace, not only a final value. The ordinary case should demonstrate “The matrix distinguishes valid CSS from font capability and protects the design when assets or fallback paths change.” The boundary must exercise the same mechanism at an edge, and the deliberate failure must be repaired with: Record browser, font file, script sample, expected substitution and a readable no-feature fallback. Other data choices are valid when the evidence supports the same causal chain.

Decision and transfer

For Build a font-specific verification matrix, separate the documented CSS font-feature-settings 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. chemistry worksheet: model, boundary and recovery

Create a small chemistry worksheet using scientific inferiors, formula readability and a chosen typeface. Combine “This is a low-level escape hatch” 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-feature-settings directly requests OpenType feature tags and is intended for particular features not adequately exposed by higher-level CSS. Apply: Search the font-variant and font-kerning properties first, then document why a raw feature is still necessary. Verify: The rule requests the scientific-inferiors feature, a specialised case without an ordinary font-variant keyword. 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 alternates, fallback fonts and a plain-text meaning. Combine “Feature tags are case-sensitive” 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 tag string preserves case, and an uppercase custom tag is not automatically the same as the lowercase registered tag. Apply: Copy the exact tag from authoritative font documentation and test the selected file. Verify: PKRN is syntactically valid as a four-character custom tag and remains distinct from pkrn. 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 programme: model, boundary and recovery

Create a small CCA programme using stylistic sets, headings and body-copy restraint. Combine “Non-negative integers can select variants” 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: A feature value may be an integer zero or greater; non-boolean features can use positive indexes to select a variant. Apply: Read the chosen font’s feature definition and test supported indexes rather than guessing. Verify: The rule requests selection index 3 for the nalt feature in the selected font. 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. transport table: model, boundary and recovery

Create a small transport table using numeric alignment, semantic properties and fallback behaviour. Combine “The property is inherited” 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 computed value normally passes from an element to descendants until another declaration wins. Apply: Scope the rule to the smallest semantic element and inspect nested content. Verify: Article descendants inherit hist unless a more specific winning declaration, such as the code reset, changes the 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.

5. bilingual article: model, boundary and recovery

Create a small bilingual article using script shaping, language metadata and font coverage. Combine “Unsupported tags are ignored by the font” 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: A valid tag absent from the selected font produces no requested feature effect, and the user agent does not synthesize a fallback for arbitrary tags. Apply: Confirm the actual font file, feature table, glyph coverage and rendered result. Verify: If the chosen face lacks sinf, the text renders without that feature rather than finding a different font merely for the tag. 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. coding handout: model, boundary and recovery

Create a small coding handout using ligatures, source-code clarity and a local opt-out. Combine “Low-level settings resolve after font-variant” 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: In the feature-resolution order, font-feature-settings is applied after font-variant-derived settings and can therefore override a conflicting high-level request. Apply: Trace cascade for each property first, then trace the documented feature application order. Verify: Both properties apply, and the low-level dlig request can re-enable discretionary ligatures after the high-level setting. 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. history display: model, boundary and recovery

Create a small history display using historical forms, quotations and accessible reading. Combine “Accessibility and meaning stay in the content layer” 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: Glyph substitutions should not be used to manufacture information that is absent from the underlying text, language or semantic markup. Apply: Preserve meaningful characters and structure, then treat font features as presentation subject to fallback. Verify: The source text remains available to selection and assistive technology; typography must not be the only carrier of meaning. 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 test page: model, boundary and recovery

Create a small design test page using tag values, computed styles and screenshot comparisons. Combine “The initial value normal makes no request” 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 means this property itself causes no change in glyph selection or positioning. Apply: Separate property requests from required and default features supplied by the font and shaping system. Verify: The declaration adds no low-level feature request; it does not erase every default shaping feature. 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 的更多信息

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

继续阅读