chore: reorder catalog items (#66616)

This commit is contained in:
Jessica Wilkins
2026-03-24 16:55:29 -07:00
committed by GitHub
parent 1a884b745a
commit 623e49bf83
18 changed files with 110 additions and 234 deletions

View File

@@ -7166,6 +7166,13 @@
"In these lectures, you will learn about HTML tools and how they let you write better code. These tools include HTML validators, DOM Inspector, and the browser developer tools."
]
},
"lab-survey-form": {
"title": "Build a Survey Form",
"intro": [
"In this lab, you'll review HTML forms by creating a survey form.",
"You'll practice working with the <code>label</code> element, the different <code>input</code> elements, the <code>required</code> attribute, and more. "
]
},
"review-html-tables-and-forms": {
"title": "HTML Tables and Forms Review",
"intro": [
@@ -8985,24 +8992,6 @@
}
}
},
"lab-survey-form": {
"title": "Build a Survey Form",
"summary": [
"Create a complete survey form while practicing HTML structure and accessible form controls."
],
"intro": [
"Build a complete survey form with semantic HTML and accessible inputs."
],
"blocks": {
"lab-survey-form": {
"title": "Build a Survey Form",
"intro": [
"In this lab, you'll review HTML forms by creating a survey form.",
"You'll practice working with the <code>label</code> element, the different <code>input</code> elements, the <code>required</code> attribute, and more. "
]
}
}
},
"html-and-accessibility": {
"title": "Learn HTML and Accessibility",
"summary": [
@@ -9510,6 +9499,13 @@
"You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
]
},
"lab-page-of-playing-cards": {
"title": "Build a Page of Playing Cards",
"intro": [
"In this lab, you'll use flexbox to create a webpage of playing cards.",
"You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
]
},
"review-css-flexbox": {
"title": "CSS Flexbox Review",
"intro": [
@@ -9523,22 +9519,6 @@
}
}
},
"lab-page-of-playing-cards": {
"title": "Build a Page of Playing Cards",
"summary": [
"Create a multi-card layout to practice flexible CSS composition."
],
"intro": ["Build a card-based layout and practice reusable styling."],
"blocks": {
"lab-page-of-playing-cards": {
"title": "Build a Page of Playing Cards",
"intro": [
"In this lab, you'll use flexbox to create a webpage of playing cards.",
"You'll practice aligning elements using flexbox properties like <code>flex-direction</code>, <code>justify-content</code>, <code>align-self</code>, and more."
]
}
}
},
"css-typography": {
"title": "Learn CSS Typography",
"summary": [
@@ -9677,6 +9657,13 @@
"In this workshop, you'll build a balance sheet using pseudo selectors. You'll learn how to change the style of an element when you hover over it with your mouse, and trigger other events on your webpage."
]
},
"lab-book-inventory-app": {
"title": "Build a Book Inventory App",
"intro": [
"In this lab, you'll create a book inventory app.",
"You'll practice CSS attribute selectors like <code>[attribute]</code>, <code>[attribute=value]</code>, <code>[attribute~=value]</code>, and more."
]
},
"review-css-attribute-selectors": {
"title": "CSS Attribute Selectors Review",
"intro": [
@@ -9692,20 +9679,6 @@
}
}
},
"lab-book-inventory-app": {
"title": "Build a Book Inventory App",
"summary": ["Build a structured layout for managing a book inventory."],
"intro": ["Create a structured UI for a book inventory layout."],
"blocks": {
"lab-book-inventory-app": {
"title": "Build a Book Inventory App",
"intro": [
"In this lab, you'll create a book inventory app.",
"You'll practice CSS attribute selectors like <code>[attribute]</code>, <code>[attribute=value]</code>, <code>[attribute~=value]</code>, and more."
]
}
}
},
"responsive-design": {
"title": "Learn Responsive Design",
"summary": [
@@ -9726,6 +9699,13 @@
"In this workshop, you'll use CSS and responsive design to code a piano. You'll also practice media queries and pseudo selectors."
]
},
"lab-technical-documentation-page": {
"title": "Build a Technical Documentation Page",
"intro": [
"In this lab, you'll build a technical documentation page to serve as instruction or reference for a topic.",
"You'll also practice media queries to create a responsive design."
]
},
"review-responsive-web-design": {
"title": "Responsive Web Design Review",
"intro": [
@@ -9741,24 +9721,6 @@
}
}
},
"lab-technical-documentation-page": {
"title": "Build a Technical Documentation Page",
"summary": [
"Create a documentation page and practice responsive structure and layout."
],
"intro": [
"Build a documentation page with clear structure and navigation."
],
"blocks": {
"lab-technical-documentation-page": {
"title": "Build a Technical Documentation Page",
"intro": [
"In this lab, you'll build a technical documentation page to serve as instruction or reference for a topic.",
"You'll also practice media queries to create a responsive design."
]
}
}
},
"css-variables": {
"title": "Learn CSS Variables",
"summary": ["Use CSS variables to build reusable, theme-friendly styles."],
@@ -9827,6 +9789,12 @@
"In this lesson, you'll learn how to debug CSS using your browser's developer tools and CSS validators."
]
},
"lab-product-landing-page": {
"title": "Build a Product Landing Page",
"intro": [
"In this project, you'll build a product landing page to market a product of your choice."
]
},
"review-css-grid": {
"title": "CSS Grid Review",
"intro": [
@@ -9840,23 +9808,6 @@
}
}
},
"lab-product-landing-page": {
"title": "Build a Product Landing Page",
"summary": [
"Build a complete landing page and apply layout, typography, and responsive design."
],
"intro": [
"Create a product landing page with cohesive layout and styling."
],
"blocks": {
"lab-product-landing-page": {
"title": "Build a Product Landing Page",
"intro": [
"In this project, you'll build a product landing page to market a product of your choice."
]
}
}
},
"css-animations": {
"title": "Learn CSS Animations",
"summary": ["Create engaging UI motion with accessible CSS animations."],

View File

@@ -57,7 +57,6 @@ const iconMap = {
[SuperBlocks.FullStackOpen]: Code,
[SuperBlocks.DevPlayground]: Code,
[SuperBlocks.HtmlFormsAndTables]: ResponsiveDesign,
[SuperBlocks.LabSurveyForm]: Code,
[SuperBlocks.HtmlAndAccessibility]: ResponsiveDesign,
[SuperBlocks.ComputerBasics]: Code,
[SuperBlocks.BasicCss]: Code,
@@ -68,17 +67,13 @@ const iconMap = {
[SuperBlocks.StylingForms]: Code,
[SuperBlocks.CssBoxModel]: Code,
[SuperBlocks.CssFlexbox]: Code,
[SuperBlocks.LabPageOfPlayingCards]: Code,
[SuperBlocks.CssTypography]: Code,
[SuperBlocks.CssAndAccessibility]: ResponsiveDesign,
[SuperBlocks.CssPositioning]: Code,
[SuperBlocks.AttributeSelectors]: Code,
[SuperBlocks.LabBookInventoryApp]: Code,
[SuperBlocks.ResponsiveDesign]: ResponsiveDesign,
[SuperBlocks.LabTechnicalDocumentationPage]: Code,
[SuperBlocks.CssVariables]: Code,
[SuperBlocks.CssGrid]: Code,
[SuperBlocks.LabProductLandingPage]: Code,
[SuperBlocks.CssAnimations]: Code,
[SuperBlocks.LearnPythonForBeginners]: PythonIcon,
[SuperBlocks.IntroductionToAlgorithmsAndDataStructures]: Code,

View File

@@ -36,7 +36,6 @@ const superblocks = [
'the-odin-project',
'introduction-to-algorithms-and-data-structures',
'introduction-to-precalculus',
'lab-survey-form',
'html-and-accessibility',
'computer-basics',
'basic-css',
@@ -47,17 +46,13 @@ const superblocks = [
'styling-forms',
'css-box-model',
'css-flexbox',
'lab-page-of-playing-cards',
'css-typography',
'css-and-accessibility',
'css-positioning',
'attribute-selectors',
'lab-book-inventory-app',
'responsive-design',
'lab-technical-documentation-page',
'css-variables',
'css-grid',
'lab-product-landing-page',
'css-animations',
'learn-oop-with-python',
'learn-rag-mcp-fundamentals',

View File

@@ -208,7 +208,6 @@ export const superBlockNames = {
'introduction-to-algorithms-and-data-structures':
SuperBlocks.IntroductionToAlgorithmsAndDataStructures,
'introduction-to-precalculus': SuperBlocks.IntroductionToPrecalculus,
'lab-survey-form': SuperBlocks.LabSurveyForm,
'html-and-accessibility': SuperBlocks.HtmlAndAccessibility,
'computer-basics': SuperBlocks.ComputerBasics,
'basic-css': SuperBlocks.BasicCss,
@@ -219,17 +218,13 @@ export const superBlockNames = {
'styling-forms': SuperBlocks.StylingForms,
'css-box-model': SuperBlocks.CssBoxModel,
'css-flexbox': SuperBlocks.CssFlexbox,
'lab-page-of-playing-cards': SuperBlocks.LabPageOfPlayingCards,
'css-typography': SuperBlocks.CssTypography,
'css-and-accessibility': SuperBlocks.CssAndAccessibility,
'css-positioning': SuperBlocks.CssPositioning,
'attribute-selectors': SuperBlocks.AttributeSelectors,
'lab-book-inventory-app': SuperBlocks.LabBookInventoryApp,
'responsive-design': SuperBlocks.ResponsiveDesign,
'lab-technical-documentation-page': SuperBlocks.LabTechnicalDocumentationPage,
'css-variables': SuperBlocks.CssVariables,
'css-grid': SuperBlocks.CssGrid,
'lab-product-landing-page': SuperBlocks.LabProductLandingPage,
'css-animations': SuperBlocks.CssAnimations,
'learn-oop-with-python': SuperBlocks.LearnOOPWithPython,
'learn-rag-mcp-fundamentals': SuperBlocks.LearnRAGAndMCPFundamentals,

View File

@@ -41,7 +41,6 @@
"learn-python-for-beginners",
"introduction-to-algorithms-and-data-structures",
"introduction-to-precalculus",
"lab-survey-form",
"html-and-accessibility",
"computer-basics",
"basic-css",
@@ -52,17 +51,13 @@
"styling-forms",
"css-box-model",
"css-flexbox",
"lab-page-of-playing-cards",
"css-typography",
"css-and-accessibility",
"css-positioning",
"attribute-selectors",
"lab-book-inventory-app",
"responsive-design",
"lab-technical-documentation-page",
"css-variables",
"css-grid",
"lab-product-landing-page",
"css-animations",
"learn-oop-with-python",
"learn-rag-mcp-fundamentals",

View File

@@ -2,6 +2,7 @@
"blocks": [
"lecture-working-with-attribute-selectors",
"workshop-balance-sheet",
"lab-book-inventory-app",
"review-css-attribute-selectors",
"quiz-css-attribute-selectors"
]

View File

@@ -3,6 +3,7 @@
"lecture-working-with-css-flexbox",
"workshop-flexbox-photo-gallery",
"lab-pricing-plans-layout",
"lab-page-of-playing-cards",
"review-css-flexbox",
"quiz-css-flexbox"
]

View File

@@ -4,6 +4,7 @@
"workshop-magazine",
"lab-newspaper-layout",
"lecture-debugging-css",
"lab-product-landing-page",
"review-css-grid",
"quiz-css-grid"
]

View File

@@ -6,6 +6,7 @@
"workshop-final-exams-table",
"lab-book-catalog-table",
"lecture-working-with-html-tools",
"lab-survey-form",
"review-html-tables-and-forms",
"quiz-html-tables-and-forms"
]

View File

@@ -1,3 +0,0 @@
{
"blocks": ["lab-book-inventory-app"]
}

View File

@@ -1,3 +0,0 @@
{
"blocks": ["lab-page-of-playing-cards"]
}

View File

@@ -1,3 +0,0 @@
{
"blocks": ["lab-product-landing-page"]
}

View File

@@ -1,3 +0,0 @@
{
"blocks": ["lab-survey-form"]
}

View File

@@ -1,3 +0,0 @@
{
"blocks": ["lab-technical-documentation-page"]
}

View File

@@ -2,6 +2,7 @@
"blocks": [
"lecture-best-practices-for-responsive-web-design",
"workshop-piano",
"lab-technical-documentation-page",
"review-responsive-web-design",
"quiz-responsive-web-design"
]

View File

@@ -35,24 +35,6 @@ interface Catalog {
}
export const catalog: Catalog[] = [
{
superBlock: SuperBlocks.HtmlFormsAndTables,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
},
{
superBlock: SuperBlocks.SemanticHtml,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
},
{
superBlock: SuperBlocks.BasicHtml,
level: Levels.Beginner,
hours: 3,
topic: Topic.Html
},
{
superBlock: SuperBlocks.LearnPythonForBeginners,
level: Levels.Beginner,
@@ -60,13 +42,19 @@ export const catalog: Catalog[] = [
topic: Topic.Python
},
{
superBlock: SuperBlocks.LabSurveyForm,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
superBlock: SuperBlocks.IntroductionToAlgorithmsAndDataStructures,
level: Levels.Intermediate,
hours: 6,
topic: Topic.ComputerScience
},
{
superBlock: SuperBlocks.HtmlAndAccessibility,
superBlock: SuperBlocks.LearnRAGAndMCPFundamentals,
level: Levels.Intermediate,
hours: 2,
topic: Topic.AI
},
{
superBlock: SuperBlocks.SemanticHtml,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
@@ -83,12 +71,48 @@ export const catalog: Catalog[] = [
hours: 3,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.BasicHtml,
level: Levels.Beginner,
hours: 3,
topic: Topic.Html
},
{
superBlock: SuperBlocks.DesignForDevelopers,
level: Levels.Beginner,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.HtmlAndAccessibility,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
},
{
superBlock: SuperBlocks.CssFlexbox,
level: Levels.Intermediate,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.IntroductionToPrecalculus,
level: Levels.Intermediate,
hours: 6,
topic: Topic.Math
},
{
superBlock: SuperBlocks.IntroductionToGitAndGithub,
level: Levels.Intermediate,
hours: 20,
topic: Topic.Git
},
{
superBlock: SuperBlocks.IntroductionToPythonBasics,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.AbsoluteAndRelativeUnits,
level: Levels.Intermediate,
@@ -101,12 +125,24 @@ export const catalog: Catalog[] = [
hours: 1,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.HtmlFormsAndTables,
level: Levels.Beginner,
hours: 2,
topic: Topic.Html
},
{
superBlock: SuperBlocks.CssColors,
level: Levels.Intermediate,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.JavascriptFundamentalsReview,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Js
},
{
superBlock: SuperBlocks.StylingForms,
level: Levels.Intermediate,
@@ -120,16 +156,22 @@ export const catalog: Catalog[] = [
topic: Topic.CSS
},
{
superBlock: SuperBlocks.CssFlexbox,
superBlock: SuperBlocks.IntroductionToBash,
level: Levels.Intermediate,
hours: 2,
topic: Topic.CSS
hours: 20,
topic: Topic.Bash
},
{
superBlock: SuperBlocks.LabPageOfPlayingCards,
superBlock: SuperBlocks.IntroductionToLinearDataStructuresInPython,
level: Levels.Intermediate,
hours: 2,
topic: Topic.CSS
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.LearnAlgorithmsInPython,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.CssTypography,
@@ -155,24 +197,12 @@ export const catalog: Catalog[] = [
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.LabBookInventoryApp,
level: Levels.Beginner,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.ResponsiveDesign,
level: Levels.Intermediate,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.LabTechnicalDocumentationPage,
level: Levels.Advanced,
hours: 1,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.CssVariables,
level: Levels.Intermediate,
@@ -185,42 +215,12 @@ export const catalog: Catalog[] = [
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.LabProductLandingPage,
level: Levels.Beginner,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.CssAnimations,
level: Levels.Advanced,
hours: 2,
topic: Topic.CSS
},
{
superBlock: SuperBlocks.IntroductionToAlgorithmsAndDataStructures,
level: Levels.Intermediate,
hours: 6,
topic: Topic.ComputerScience
},
{
superBlock: SuperBlocks.LearnRAGAndMCPFundamentals,
level: Levels.Intermediate,
hours: 2,
topic: Topic.AI
},
{
superBlock: SuperBlocks.IntroductionToPrecalculus,
level: Levels.Intermediate,
hours: 6,
topic: Topic.Math
},
{
superBlock: SuperBlocks.IntroductionToBash,
level: Levels.Intermediate,
hours: 20,
topic: Topic.Bash
},
{
superBlock: SuperBlocks.IntroductionToSQLAndPostgreSQL,
level: Levels.Intermediate,
@@ -245,12 +245,6 @@ export const catalog: Catalog[] = [
hours: 10,
topic: Topic.Editors
},
{
superBlock: SuperBlocks.IntroductionToGitAndGithub,
level: Levels.Intermediate,
hours: 20,
topic: Topic.Git
},
{
superBlock: SuperBlocks.IntroductionToVariablesAndStringsInJS,
level: Levels.Intermediate,
@@ -287,12 +281,6 @@ export const catalog: Catalog[] = [
hours: 40,
topic: Topic.Js
},
{
superBlock: SuperBlocks.JavascriptFundamentalsReview,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Js
},
{
superBlock: SuperBlocks.IntroductionToHigherOrderFunctionsAndCallbacksInJS,
level: Levels.Intermediate,
@@ -377,12 +365,6 @@ export const catalog: Catalog[] = [
hours: 3,
topic: Topic.Python
},
{
superBlock: SuperBlocks.IntroductionToPythonBasics,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.LearnPythonLoopsAndSequences,
level: Levels.Intermediate,
@@ -413,18 +395,6 @@ export const catalog: Catalog[] = [
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.IntroductionToLinearDataStructuresInPython,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.LearnAlgorithmsInPython,
level: Levels.Intermediate,
hours: 40,
topic: Topic.Python
},
{
superBlock: SuperBlocks.LearnGraphsAndTreesInPython,
level: Levels.Intermediate,

View File

@@ -343,7 +343,6 @@ export const superBlockToCertMap: {
[SuperBlocks.DevPlayground]: null,
[SuperBlocks.FullStackOpen]: null,
[SuperBlocks.HtmlFormsAndTables]: null,
[SuperBlocks.LabSurveyForm]: null,
[SuperBlocks.HtmlAndAccessibility]: null,
[SuperBlocks.ComputerBasics]: null,
[SuperBlocks.BasicCss]: null,
@@ -354,17 +353,13 @@ export const superBlockToCertMap: {
[SuperBlocks.StylingForms]: null,
[SuperBlocks.CssBoxModel]: null,
[SuperBlocks.CssFlexbox]: null,
[SuperBlocks.LabPageOfPlayingCards]: null,
[SuperBlocks.CssTypography]: null,
[SuperBlocks.CssAndAccessibility]: null,
[SuperBlocks.CssPositioning]: null,
[SuperBlocks.AttributeSelectors]: null,
[SuperBlocks.LabBookInventoryApp]: null,
[SuperBlocks.ResponsiveDesign]: null,
[SuperBlocks.LabTechnicalDocumentationPage]: null,
[SuperBlocks.CssVariables]: null,
[SuperBlocks.CssGrid]: null,
[SuperBlocks.LabProductLandingPage]: null,
[SuperBlocks.CssAnimations]: null,
[SuperBlocks.LearnPythonForBeginners]: null,
[SuperBlocks.IntroductionToAlgorithmsAndDataStructures]: null,

View File

@@ -42,7 +42,6 @@ export enum SuperBlocks {
BackEndDevApisV9 = 'back-end-development-and-apis-v9',
FullStackDeveloperV9 = 'full-stack-developer-v9',
HtmlFormsAndTables = 'html-forms-and-tables',
LabSurveyForm = 'lab-survey-form',
HtmlAndAccessibility = 'html-and-accessibility',
ComputerBasics = 'computer-basics',
BasicCss = 'basic-css',
@@ -53,17 +52,13 @@ export enum SuperBlocks {
StylingForms = 'styling-forms',
CssBoxModel = 'css-box-model',
CssFlexbox = 'css-flexbox',
LabPageOfPlayingCards = 'lab-page-of-playing-cards',
CssTypography = 'css-typography',
CssAndAccessibility = 'css-and-accessibility',
CssPositioning = 'css-positioning',
AttributeSelectors = 'attribute-selectors',
LabBookInventoryApp = 'lab-book-inventory-app',
ResponsiveDesign = 'responsive-design',
LabTechnicalDocumentationPage = 'lab-technical-documentation-page',
CssVariables = 'css-variables',
CssGrid = 'css-grid',
LabProductLandingPage = 'lab-product-landing-page',
CssAnimations = 'css-animations',
LearnPythonForBeginners = 'learn-python-for-beginners',
IntroductionToAlgorithmsAndDataStructures = 'introduction-to-algorithms-and-data-structures',
@@ -233,7 +228,6 @@ export const superBlockStages: StageMap = {
SuperBlocks.HtmlFormsAndTables,
SuperBlocks.BasicHtml,
SuperBlocks.SemanticHtml,
SuperBlocks.LabSurveyForm,
SuperBlocks.HtmlAndAccessibility,
SuperBlocks.ComputerBasics,
SuperBlocks.BasicCss,
@@ -244,17 +238,13 @@ export const superBlockStages: StageMap = {
SuperBlocks.StylingForms,
SuperBlocks.CssBoxModel,
SuperBlocks.CssFlexbox,
SuperBlocks.LabPageOfPlayingCards,
SuperBlocks.CssTypography,
SuperBlocks.CssAndAccessibility,
SuperBlocks.CssPositioning,
SuperBlocks.AttributeSelectors,
SuperBlocks.LabBookInventoryApp,
SuperBlocks.ResponsiveDesign,
SuperBlocks.LabTechnicalDocumentationPage,
SuperBlocks.CssVariables,
SuperBlocks.CssGrid,
SuperBlocks.LabProductLandingPage,
SuperBlocks.CssAnimations,
SuperBlocks.LearnPythonForBeginners,
SuperBlocks.IntroductionToAlgorithmsAndDataStructures,