Skip to content

Commit 2ec09ca

Browse files
author
Stephan Wald
committed
feat: replace static course index with interactive ChapterCards component
- Introduced `ChapterCards` React component for dynamic chapter display - Updated `/docs/index.md` to use `ChapterCards` for a more interactive experience - Added modular styles in `styles.module.css` for responsiveness and improved hover effects - Removed previous chapter list content from `index.md` - Updated `.gitignore` to exclude auto-generated files and logs
1 parent aee4985 commit 2ec09ca

4 files changed

Lines changed: 232 additions & 20 deletions

File tree

.gitignore

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -22,11 +22,3 @@ build.log
2222

2323
# Auto Claude data directory
2424
.auto-claude/
25-
26-
# Auto Claude generated files
27-
.auto-claude-security.json
28-
.auto-claude-status
29-
.claude_settings.json
30-
.worktrees/
31-
.security-key
32-
logs/security/

docs/index.md

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -4,24 +4,17 @@ slug: /
44
title: BBj DWC Training
55
---
66

7+
import ChapterCards from '@site/src/components/ChapterCards';
8+
79
# BBj DWC Training
810

911
Welcome to the BBj Dynamic Web Client (DWC) Training course. This course will teach you how to develop modern web applications using BBj and the Dynamic Web Client.
1012

1113
## Course Overview
1214

13-
This training covers:
14-
15-
1. **[GUI to BUI to DWC](gui-to-bui-to-dwc/)** - Understanding the transition from GUI to Browser User Interface to Dynamic Web Client
16-
2. **[Browser Developer Tools & CSS](browser-developer-tools/)** - Using browser tools and styling with CSS
17-
3. **[Upgrading Apps](upgrading-apps/)** - Upgrading existing GUI or BUI applications to DWC
18-
4. **[DWC Controls](dwc-controls/)** - Working with DWC controls and extended attributes
19-
5. **[Flow Layouts](flow-layouts/)** - Flow layouts and CSS for responsive design
20-
6. **[Icon Pools](icon-pools/)** - Working with icon pools
21-
7. **[Control Validation](control-validation/)** - Implementing control validation
22-
8. **[Browser Constraints](browser-constraints/)** - Understanding browser constraints
23-
9. **[Embedding Components](embedding-components/)** - Embedding 3rd party components
24-
10. **[Advanced Responsive Design](advanced-responsive/)** - Media queries and transitions
15+
This comprehensive 12-chapter training course covers everything you need to build modern web applications with BBj DWC:
16+
17+
<ChapterCards />
2518

2619
## Getting Started
2720

Lines changed: 181 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,181 @@
1+
import type {ReactNode} from 'react';
2+
import clsx from 'clsx';
3+
import Heading from '@theme/Heading';
4+
import Link from '@docusaurus/Link';
5+
import styles from './styles.module.css';
6+
7+
type ChapterItem = {
8+
number: number;
9+
title: string;
10+
slug: string;
11+
icon: string;
12+
description: ReactNode;
13+
};
14+
15+
const ChapterList: ChapterItem[] = [
16+
{
17+
number: 1,
18+
title: 'GUI to BUI to DWC',
19+
slug: '/gui-to-bui-to-dwc',
20+
icon: '🖥️',
21+
description: (
22+
<>
23+
Learn the fundamentals of transitioning from BBj GUI applications to Browser User Interface (BUI) and Dynamic Web Client (DWC).
24+
</>
25+
),
26+
},
27+
{
28+
number: 2,
29+
title: 'Browser Developer Tools, CSS, and Themes',
30+
slug: '/browser-developer-tools',
31+
icon: '🎨',
32+
description: (
33+
<>
34+
Master browser Developer Tools, CSS fundamentals, CSS custom properties, and DWC themes for styling your applications.
35+
</>
36+
),
37+
},
38+
{
39+
number: 3,
40+
title: 'DWC Debugging',
41+
slug: '/dwc-debugging',
42+
icon: '🐛',
43+
description: (
44+
<>
45+
Explore debugging techniques specific to the Dynamic Web Client including the DWC debug console and browser tools.
46+
</>
47+
),
48+
},
49+
{
50+
number: 4,
51+
title: 'Upgrading Apps to DWC',
52+
slug: '/upgrading-apps',
53+
icon: '⬆️',
54+
description: (
55+
<>
56+
Learn how to upgrade existing GUI or BUI applications to DWC, including working with ARC files and BBjGrids.
57+
</>
58+
),
59+
},
60+
{
61+
number: 5,
62+
title: 'DWC Controls With Extended Attributes',
63+
slug: '/dwc-controls',
64+
icon: '🎛️',
65+
description: (
66+
<>
67+
Discover BBj controls implemented as web components with extended attributes, themes, and enhanced functionality.
68+
</>
69+
),
70+
},
71+
{
72+
number: 6,
73+
title: 'Flow Layouts and CSS for Responsive Design',
74+
slug: '/flow-layouts',
75+
icon: '📐',
76+
description: (
77+
<>
78+
Master CSS layout strategies including Flexbox and Grid to create responsive BBj applications that adapt to any screen size.
79+
</>
80+
),
81+
},
82+
{
83+
number: 7,
84+
title: 'Icon Pools',
85+
slug: '/icon-pools',
86+
icon: '🎯',
87+
description: (
88+
<>
89+
Learn to use built-in icon pools to easily add icons to your BBj controls without managing image files.
90+
</>
91+
),
92+
},
93+
{
94+
number: 8,
95+
title: 'Control Validation',
96+
slug: '/control-validation',
97+
icon: '✅',
98+
description: (
99+
<>
100+
Implement control validation with visual feedback using built-in validation capabilities and custom validation logic.
101+
</>
102+
),
103+
},
104+
{
105+
number: 9,
106+
title: 'Browser Constraints',
107+
slug: '/browser-constraints',
108+
icon: '🌐',
109+
description: (
110+
<>
111+
Understand browser environment constraints and limitations including file handling, printing, and security considerations.
112+
</>
113+
),
114+
},
115+
{
116+
number: 10,
117+
title: 'Embedding 3rd Party Components',
118+
slug: '/embedding-components',
119+
icon: '🔌',
120+
description: (
121+
<>
122+
Embed third-party JavaScript components like charts, maps, and widgets into your DWC applications.
123+
</>
124+
),
125+
},
126+
{
127+
number: 11,
128+
title: 'Advanced Responsive Design',
129+
slug: '/advanced-responsive',
130+
icon: '📱',
131+
description: (
132+
<>
133+
Master advanced responsive design techniques including media queries and CSS transitions for engaging user experiences.
134+
</>
135+
),
136+
},
137+
{
138+
number: 12,
139+
title: 'Deployment Options',
140+
slug: '/deployment',
141+
icon: '🚀',
142+
description: (
143+
<>
144+
Explore deployment options including embedded deployment and Progressive Web Apps (PWA) for mobile and offline support.
145+
</>
146+
),
147+
},
148+
];
149+
150+
function ChapterCard({number, title, slug, icon, description}: ChapterItem) {
151+
return (
152+
<div className={clsx('col col--4')}>
153+
<div className="text--center">
154+
<div className={styles.chapterIcon}>{icon}</div>
155+
<div className={styles.chapterNumber}>Chapter {number}</div>
156+
</div>
157+
<div className="text--center padding-horiz--md">
158+
<Heading as="h3">
159+
<Link to={slug} className={styles.chapterLink}>
160+
{title}
161+
</Link>
162+
</Heading>
163+
<p>{description}</p>
164+
</div>
165+
</div>
166+
);
167+
}
168+
169+
export default function ChapterCards(): ReactNode {
170+
return (
171+
<section className={styles.chapters}>
172+
<div className="container">
173+
<div className="row">
174+
{ChapterList.map((props, idx) => (
175+
<ChapterCard key={idx} {...props} />
176+
))}
177+
</div>
178+
</div>
179+
</section>
180+
);
181+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
.chapters {
2+
display: flex;
3+
align-items: center;
4+
padding: 2rem 0;
5+
width: 100%;
6+
}
7+
8+
.chapterCard {
9+
height: 100%;
10+
padding: 1.5rem;
11+
border-radius: 8px;
12+
transition: transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
13+
}
14+
15+
.chapterCard:hover {
16+
transform: translateY(-4px);
17+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
18+
}
19+
20+
[data-theme='dark'] .chapterCard:hover {
21+
box-shadow: 0 4px 12px rgba(0, 0, 0, 0.3);
22+
}
23+
24+
.chapterIcon {
25+
font-size: 3rem;
26+
margin-bottom: 1rem;
27+
}
28+
29+
.chapterNumber {
30+
font-size: 0.875rem;
31+
font-weight: 600;
32+
text-transform: uppercase;
33+
letter-spacing: 0.05em;
34+
color: var(--ifm-color-primary);
35+
margin-bottom: 0.5rem;
36+
}
37+
38+
.chapterLink {
39+
color: inherit;
40+
text-decoration: none;
41+
}
42+
43+
.chapterLink:hover {
44+
color: var(--ifm-color-primary);
45+
text-decoration: none;
46+
}

0 commit comments

Comments
 (0)