Goood commited on
Commit
701eb9d
·
verified ·
1 Parent(s): 75af189

keep going

Browse files
README.md CHANGED
@@ -1,10 +1,13 @@
1
  ---
2
- title: Digital Maturity Maestro
3
- emoji: 📊
4
  colorFrom: green
5
  colorTo: gray
 
6
  sdk: static
7
  pinned: false
 
 
8
  ---
9
 
10
- Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
 
1
  ---
2
+ title: Digital Maturity Maestro 🎯
 
3
  colorFrom: green
4
  colorTo: gray
5
+ emoji: 🐳
6
  sdk: static
7
  pinned: false
8
+ tags:
9
+ - deepsite-v3
10
  ---
11
 
12
+ # Welcome to your new DeepSite project!
13
+ This project was created with [DeepSite](https://huggingface.co/deepsite).
assessment.html ADDED
@@ -0,0 +1,46 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Assessment | Digital Maturity Maestro</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="components/navbar.js"></script>
11
+ <script src="components/progress-tracker.js"></script>
12
+ <script src="components/question-card.js"></script>
13
+ </head>
14
+ <body class="bg-gray-50">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="container mx-auto px-4 py-8">
18
+ <div class="text-center mb-12">
19
+ <h1 class="text-4xl font-bold text-gray-800 mb-4" id="dimension-title">Assessment</h1>
20
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto" id="dimension-description">
21
+ Answer questions to evaluate your digital maturity
22
+ </p>
23
+ </div>
24
+
25
+ <custom-progress-tracker current-step="2"></custom-progress-tracker>
26
+
27
+ <div id="questions-container" class="max-w-4xl mx-auto space-y-6">
28
+ <!-- Questions will be dynamically inserted here -->
29
+ </div>
30
+
31
+ <div class="flex justify-between mt-12 max-w-4xl mx-auto">
32
+ <button id="prev-btn" class="px-6 py-3 bg-gray-200 text-gray-700 rounded-lg font-medium hover:bg-gray-300 transition">
33
+ Previous
34
+ </button>
35
+ <button id="next-btn" class="px-6 py-3 bg-yellow-500 text-white rounded-lg font-medium hover:bg-yellow-600 transition">
36
+ Next
37
+ </button>
38
+ </div>
39
+ </main>
40
+
41
+ <script>
42
+ feather.replace();
43
+ </script>
44
+ <script src="script.js"></script>
45
+ </body>
46
+ </html>
components/assessment-card.js ADDED
@@ -0,0 +1,43 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomAssessmentCard extends HTMLElement {
2
+ connectedCallback() {
3
+ const dimension = this.getAttribute('dimension') || 'Dimension';
4
+ const icon = this.getAttribute('icon') || 'help-circle';
5
+ const description = this.getAttribute('description') || 'Assessment dimension';
6
+ const progress = this.getAttribute('progress') || '0';
7
+
8
+ this.attachShadow({ mode: 'open' });
9
+ this.shadowRoot.innerHTML = `
10
+ <style>
11
+ .card-container {
12
+ transition: all 0.2s ease;
13
+ }
14
+ .card-container:hover {
15
+ transform: translateY(-4px);
16
+ }
17
+ .progress-bar {
18
+ transition: width 0.6s ease;
19
+ }
20
+ </style>
21
+ <div class="card-container bg-white rounded-xl shadow-md p-6 cursor-pointer h-full flex flex-col">
22
+ <div class="flex items-center mb-4">
23
+ <div class="p-3 rounded-lg bg-yellow-50 mr-4">
24
+ <i data-feather="${icon}" class="text-yellow-500"></i>
25
+ </div>
26
+ <h3 class="text-xl font-semibold text-gray-800">${dimension}</h3>
27
+ </div>
28
+ <p class="text-gray-600 mb-6 flex-grow">${description}</p>
29
+ <div class="mt-auto">
30
+ <div class="flex justify-between items-center mb-2">
31
+ <span class="text-sm font-medium text-gray-700">Progress</span>
32
+ <span class="text-sm font-medium text-yellow-600">${progress}%</span>
33
+ </div>
34
+ <div class="w-full bg-gray-200 rounded-full h-2.5">
35
+ <div class="progress-bar bg-yellow-500 h-2.5 rounded-full" style="width: ${progress}%"></div>
36
+ </div>
37
+ </div>
38
+ </div>
39
+ `;
40
+ }
41
+ }
42
+
43
+ customElements.define('custom-assessment-card', CustomAssessmentCard);
components/navbar.js ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomNavbar extends HTMLElement {
2
+ connectedCallback() {
3
+ this.attachShadow({ mode: 'open' });
4
+ this.shadowRoot.innerHTML = `
5
+ <style>
6
+ .navbar {
7
+ transition: all 0.3s ease;
8
+ }
9
+ .nav-link:hover {
10
+ color: #f59e0b;
11
+ }
12
+ .nav-link.active {
13
+ color: #f59e0b;
14
+ border-bottom: 2px solid #f59e0b;
15
+ }
16
+ </style>
17
+ <nav class="navbar bg-white shadow-sm py-4">
18
+ <div class="container mx-auto px-4 flex justify-between items-center">
19
+ <div class="flex items-center space-x-2">
20
+ <i data-feather="layers" class="text-yellow-500"></i>
21
+ <span class="text-xl font-semibold text-gray-800">DMM 5.0 Assessment</span>
22
+ </div>
23
+ <div class="hidden md:flex space-x-8">
24
+ <a href="index.html" class="nav-link active text-gray-700 font-medium">Home</a>
25
+ <a href="about.html" class="nav-link text-gray-700 font-medium">About</a>
26
+ <a href="results.html" class="nav-link text-gray-700 font-medium">Results</a>
27
+ <a href="help.html" class="nav-link text-gray-700 font-medium">Help</a>
28
+ </div>
29
+ <button class="md:hidden focus:outline-none">
30
+ <i data-feather="menu" class="text-gray-700"></i>
31
+ </button>
32
+ </div>
33
+ </nav>
34
+ `;
35
+ }
36
+ }
37
+
38
+ customElements.define('custom-navbar', CustomNavbar);
components/progress-tracker.js ADDED
@@ -0,0 +1,70 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomProgressTracker extends HTMLElement {
2
+ connectedCallback() {
3
+ const currentStep = this.getAttribute('current-step') || '1';
4
+
5
+ this.attachShadow({ mode: 'open' });
6
+ this.shadowRoot.innerHTML = `
7
+ <style>
8
+ .step {
9
+ width: 2.5rem;
10
+ height: 2.5rem;
11
+ }
12
+ .step.active {
13
+ background-color: #f59e0b;
14
+ color: white;
15
+ }
16
+ .step.inactive {
17
+ background-color: #e5e7eb;
18
+ color: #6b7280;
19
+ }
20
+ .connector {
21
+ height: 2px;
22
+ background-color: #e5e7eb;
23
+ }
24
+ .connector.active {
25
+ background-color: #f59e0b;
26
+ }
27
+ </style>
28
+ <div class="flex items-center justify-center mb-12">
29
+ <div class="flex items-center">
30
+ <!-- Step 1 -->
31
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '1' ? 'active' : 'inactive'}">
32
+ 1
33
+ </div>
34
+ <div class="connector w-16 mx-2 ${currentStep >= '2' ? 'active' : ''}"></div>
35
+
36
+ <!-- Step 2 -->
37
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '2' ? 'active' : currentStep > '2' ? 'active' : 'inactive'}">
38
+ 2
39
+ </div>
40
+ <div class="connector w-16 mx-2 ${currentStep >= '3' ? 'active' : ''}"></div>
41
+
42
+ <!-- Step 3 -->
43
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '3' ? 'active' : currentStep > '3' ? 'active' : 'inactive'}">
44
+ 3
45
+ </div>
46
+ <div class="connector w-16 mx-2 ${currentStep >= '4' ? 'active' : ''}"></div>
47
+
48
+ <!-- Step 4 -->
49
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '4' ? 'active' : currentStep > '4' ? 'active' : 'inactive'}">
50
+ 4
51
+ </div>
52
+ <div class="connector w-16 mx-2 ${currentStep >= '5' ? 'active' : ''}"></div>
53
+
54
+ <!-- Step 5 -->
55
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '5' ? 'active' : currentStep > '5' ? 'active' : 'inactive'}">
56
+ 5
57
+ </div>
58
+ <div class="connector w-16 mx-2 ${currentStep >= '6' ? 'active' : ''}"></div>
59
+
60
+ <!-- Step 6 -->
61
+ <div class="step rounded-full flex items-center justify-center font-medium ${currentStep === '6' ? 'active' : 'inactive'}">
62
+ 6
63
+ </div>
64
+ </div>
65
+ </div>
66
+ `;
67
+ }
68
+ }
69
+
70
+ customElements.define('custom-progress-tracker', CustomProgressTracker);
components/question-card.js ADDED
@@ -0,0 +1,50 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ class CustomQuestionCard extends HTMLElement {
2
+ connectedCallback() {
3
+ const question = this.getAttribute('question') || 'Question';
4
+ const description = this.getAttribute('description') || '';
5
+ const options = JSON.parse(this.getAttribute('options') || '[]');
6
+
7
+ this.attachShadow({ mode: 'open' });
8
+ this.shadowRoot.innerHTML = `
9
+ <style>
10
+ .card {
11
+ transition: all 0.2s ease;
12
+ }
13
+ .option:hover {
14
+ background-color: #fef3c7;
15
+ }
16
+ .option.selected {
17
+ background-color: #fef3c7;
18
+ border-color: #f59e0b;
19
+ }
20
+ </style>
21
+ <div class="card bg-white rounded-xl shadow-md p-6">
22
+ <h3 class="text-xl font-semibold text-gray-800 mb-2">${question}</h3>
23
+ ${description ? `<p class="text-gray-600 mb-4">${description}</p>` : ''}
24
+ <div class="space-y-3">
25
+ ${options.map((option, index) => `
26
+ <div class="option p-4 border rounded-lg cursor-pointer transition" data-value="${option.value}">
27
+ <div class="flex items-center">
28
+ <div class="w-5 h-5 rounded-full border border-gray-300 mr-3 flex-shrink-0"></div>
29
+ <span>${option.label}</span>
30
+ </div>
31
+ </div>
32
+ `).join('')}
33
+ </div>
34
+ </div>
35
+ `;
36
+
37
+ // Add click handlers for options
38
+ this.shadowRoot.querySelectorAll('.option').forEach(option => {
39
+ option.addEventListener('click', () => {
40
+ this.shadowRoot.querySelectorAll('.option').forEach(opt => {
41
+ opt.classList.remove('selected');
42
+ });
43
+ option.classList.add('selected');
44
+ this.setAttribute('selected', option.getAttribute('data-value'));
45
+ });
46
+ });
47
+ }
48
+ }
49
+
50
+ customElements.define('custom-question-card', CustomQuestionCard);
index.html CHANGED
@@ -1,19 +1,79 @@
1
- <!doctype html>
2
- <html>
3
- <head>
4
- <meta charset="utf-8" />
5
- <meta name="viewport" content="width=device-width" />
6
- <title>My static Space</title>
7
- <link rel="stylesheet" href="style.css" />
8
- </head>
9
- <body>
10
- <div class="card">
11
- <h1>Welcome to your static Space!</h1>
12
- <p>You can modify this app directly by editing <i>index.html</i> in the Files and versions tab.</p>
13
- <p>
14
- Also don't forget to check the
15
- <a href="https://huggingface.co/docs/hub/spaces" target="_blank">Spaces documentation</a>.
16
- </p>
17
- </div>
18
- </body>
19
- </html>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>TM Forum DMM 5.0 Assessment</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://unpkg.com/feather-icons"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/assessment-card.js"></script>
13
+ <script src="components/progress-tracker.js"></script>
14
+ </head>
15
+ <body class="bg-gray-50">
16
+ <custom-navbar></custom-navbar>
17
+
18
+ <main class="container mx-auto px-4 py-8">
19
+ <div class="text-center mb-12">
20
+ <h1 class="text-4xl font-bold text-gray-800 mb-4">DMM 5.0 Assessment</h1>
21
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto">
22
+ Evaluate your digital maturity across all 6 dimensions of the TM Forum's Digital Maturity Model
23
+ </p>
24
+ </div>
25
+
26
+ <custom-progress-tracker current-step="1"></custom-progress-tracker>
27
+
28
+ <div class="grid grid-cols-1 md:grid-cols-2 lg:grid-cols-3 gap-6 mt-12">
29
+ <custom-assessment-card
30
+ dimension="Strategy & Leadership"
31
+ icon="target"
32
+ description="Assess your digital strategy and leadership capabilities"
33
+ progress="0">
34
+ </custom-assessment-card>
35
+
36
+ <custom-assessment-card
37
+ dimension="Customer Experience"
38
+ icon="users"
39
+ description="Evaluate your customer-centric digital capabilities"
40
+ progress="0">
41
+ </custom-assessment-card>
42
+
43
+ <custom-assessment-card
44
+ dimension="Operations & Automation"
45
+ icon="settings"
46
+ description="Measure your operational efficiency and automation"
47
+ progress="0">
48
+ </custom-assessment-card>
49
+
50
+ <custom-assessment-card
51
+ dimension="Technology"
52
+ icon="cpu"
53
+ description="Assess your technology infrastructure and capabilities"
54
+ progress="0">
55
+ </custom-assessment-card>
56
+
57
+ <custom-assessment-card
58
+ dimension="Data & Insights"
59
+ icon="database"
60
+ description="Evaluate your data management and analytics maturity"
61
+ progress="0">
62
+ </custom-assessment-card>
63
+
64
+ <custom-assessment-card
65
+ dimension="Partnership & Ecosystem"
66
+ icon="link"
67
+ description="Measure your ecosystem collaboration capabilities"
68
+ progress="0">
69
+ </custom-assessment-card>
70
+ </div>
71
+ </main>
72
+
73
+ <script>
74
+ feather.replace();
75
+ </script>
76
+ <script src="script.js"></script>
77
+ <script src="https://huggingface.co/deepsite/deepsite-badge.js"></script>
78
+ </body>
79
+ </html>
results.html ADDED
@@ -0,0 +1,138 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+ <head>
4
+ <meta charset="UTF-8">
5
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
6
+ <title>Results | Digital Maturity Maestro</title>
7
+ <link rel="stylesheet" href="style.css">
8
+ <script src="https://cdn.tailwindcss.com"></script>
9
+ <script src="https://cdn.jsdelivr.net/npm/feather-icons/dist/feather.min.js"></script>
10
+ <script src="https://cdn.jsdelivr.net/npm/chart.js"></script>
11
+ <script src="components/navbar.js"></script>
12
+ <script src="components/result-card.js"></script>
13
+ </head>
14
+ <body class="bg-gray-50">
15
+ <custom-navbar></custom-navbar>
16
+
17
+ <main class="container mx-auto px-4 py-8">
18
+ <div class="text-center mb-12">
19
+ <h1 class="text-4xl font-bold text-gray-800 mb-4">Your Digital Maturity Results</h1>
20
+ <p class="text-xl text-gray-600 max-w-3xl mx-auto">
21
+ See how you compare across all dimensions
22
+ </p>
23
+ </div>
24
+
25
+ <div class="grid grid-cols-1 lg:grid-cols-2 gap-8 mb-12">
26
+ <div class="bg-white rounded-xl shadow-md p-6">
27
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Overall Maturity Score</h2>
28
+ <div class="flex items-center justify-center">
29
+ <div class="relative w-64 h-64">
30
+ <canvas id="maturityChart"></canvas>
31
+ <div class="absolute inset-0 flex items-center justify-center">
32
+ <span class="text-4xl font-bold text-yellow-600">3.8</span>
33
+ </div>
34
+ </div>
35
+ </div>
36
+ </div>
37
+
38
+ <div class="bg-white rounded-xl shadow-md p-6">
39
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Dimension Breakdown</h2>
40
+ <div class="space-y-4">
41
+ <custom-result-card
42
+ dimension="Strategy & Leadership"
43
+ score="4.2"
44
+ icon="target">
45
+ </custom-result-card>
46
+
47
+ <custom-result-card
48
+ dimension="Customer Experience"
49
+ score="3.8"
50
+ icon="users">
51
+ </custom-result-card>
52
+
53
+ <custom-result-card
54
+ dimension="Operations & Automation"
55
+ score="3.5"
56
+ icon="settings">
57
+ </custom-result-card>
58
+
59
+ <custom-result-card
60
+ dimension="Technology"
61
+ score="4.0"
62
+ icon="cpu">
63
+ </custom-result-card>
64
+
65
+ <custom-result-card
66
+ dimension="Data & Insights"
67
+ score="3.2"
68
+ icon="database">
69
+ </custom-result-card>
70
+
71
+ <custom-result-card
72
+ dimension="Partnership & Ecosystem"
73
+ score="3.9"
74
+ icon="link">
75
+ </custom-result-card>
76
+ </div>
77
+ </div>
78
+ </div>
79
+
80
+ <div class="bg-white rounded-xl shadow-md p-6 mb-12">
81
+ <h2 class="text-2xl font-semibold text-gray-800 mb-4">Recommendations</h2>
82
+ <div class="space-y-4">
83
+ <div class="p-4 bg-yellow-50 rounded-lg border-l-4 border-yellow-500">
84
+ <h3 class="font-medium text-gray-800 mb-2">Improve Data & Insights</h3>
85
+ <p class="text-gray-600">Consider implementing advanced analytics and data governance frameworks to enhance your data capabilities.</p>
86
+ </div>
87
+ <div class="p-4 bg-yellow-50 rounded-lg border-l-4 border-yellow-500">
88
+ <h3 class="font-medium text-gray-800 mb-2">Optimize Operations</h3>
89
+ <p class="text-gray-600">Evaluate opportunities for further automation and process optimization in your operational workflows.</p>
90
+ </div>
91
+ </div>
92
+ </div>
93
+
94
+ <div class="flex justify-center">
95
+ <a href="index.html" class="px-6 py-3 bg-yellow-500 text-white rounded-lg font-medium hover:bg-yellow-600 transition">
96
+ Start New Assessment
97
+ </a>
98
+ </div>
99
+ </main>
100
+
101
+ <script>
102
+ feather.replace();
103
+
104
+ // Initialize chart
105
+ const ctx = document.getElementById('maturityChart').getContext('2d');
106
+ new Chart(ctx, {
107
+ type: 'radar',
108
+ data: {
109
+ labels: ['Strategy', 'Customer', 'Operations', 'Technology', 'Data', 'Ecosystem'],
110
+ datasets: [{
111
+ label: 'Your Score',
112
+ data: [4.2, 3.8, 3.5, 4.0, 3.2, 3.9],
113
+ backgroundColor: 'rgba(245, 158, 11, 0.2)',
114
+ borderColor: 'rgba(245, 158, 11, 1)',
115
+ borderWidth: 2,
116
+ pointBackgroundColor: 'rgba(245, 158, 11, 1)',
117
+ pointRadius: 4
118
+ }]
119
+ },
120
+ options: {
121
+ scales: {
122
+ r: {
123
+ angleLines: {
124
+ display: true
125
+ },
126
+ suggestedMin: 0,
127
+ suggestedMax: 5,
128
+ ticks: {
129
+ stepSize: 1
130
+ }
131
+ }
132
+ }
133
+ }
134
+ });
135
+ </script>
136
+ <script src="script.js"></script>
137
+ </body>
138
+ </html>
script.js ADDED
@@ -0,0 +1,91 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+
2
+ document.addEventListener('DOMContentLoaded', () => {
3
+ // Initialize assessment cards
4
+ const assessmentCards = document.querySelectorAll('custom-assessment-card');
5
+
6
+ assessmentCards.forEach(card => {
7
+ card.addEventListener('click', () => {
8
+ const dimension = card.getAttribute('dimension');
9
+ localStorage.setItem('currentDimension', dimension);
10
+ window.location.href = `assessment.html?dimension=${encodeURIComponent(dimension)}`;
11
+ });
12
+ });
13
+
14
+ // Add hover effects to cards
15
+ assessmentCards.forEach(card => {
16
+ card.addEventListener('mouseenter', () => {
17
+ card.shadowRoot.querySelector('.card-container').classList.add('shadow-lg');
18
+ card.shadowRoot.querySelector('.card-container').classList.remove('shadow-md');
19
+ });
20
+
21
+ card.addEventListener('mouseleave', () => {
22
+ card.shadowRoot.querySelector('.card-container').classList.remove('shadow-lg');
23
+ card.shadowRoot.querySelector('.card-container').classList.add('shadow-md');
24
+ });
25
+ });
26
+
27
+ // Assessment page logic
28
+ if (window.location.pathname.includes('assessment.html')) {
29
+ const params = new URLSearchParams(window.location.search);
30
+ const dimension = params.get('dimension') || localStorage.getItem('currentDimension');
31
+
32
+ // Update page title and description
33
+ document.getElementById('dimension-title').textContent = dimension;
34
+ document.getElementById('dimension-description').textContent =
35
+ `Evaluate your ${dimension.toLowerCase()} capabilities`;
36
+
37
+ // Load questions (mock data for now)
38
+ const questions = [
39
+ {
40
+ question: "How would you describe your organization's digital strategy?",
41
+ description: "Consider alignment with business goals and digital transformation initiatives",
42
+ options: [
43
+ { value: 1, label: "No formal digital strategy" },
44
+ { value: 2, label: "Emerging digital strategy" },
45
+ { value: 3, label: "Defined digital strategy" },
46
+ { value: 4, label: "Mature digital strategy" },
47
+ { value: 5, label: "Optimized digital strategy" }
48
+ ]
49
+ },
50
+ {
51
+ question: "How effectively is digital leadership demonstrated?",
52
+ options: [
53
+ { value: 1, label: "No digital leadership" },
54
+ { value: 2, label: "Emerging digital leadership" },
55
+ { value: 3, label: "Some digital leadership" },
56
+ { value: 4, label: "Strong digital leadership" },
57
+ { value: 5, label: "Exceptional digital leadership" }
58
+ ]
59
+ }
60
+ ];
61
+
62
+ const container = document.getElementById('questions-container');
63
+ questions.forEach((q, index) => {
64
+ const card = document.createElement('custom-question-card');
65
+ card.setAttribute('question', q.question);
66
+ if (q.description) card.setAttribute('description', q.description);
67
+ card.setAttribute('options', JSON.stringify(q.options));
68
+ card.setAttribute('data-index', index);
69
+ container.appendChild(card);
70
+ });
71
+
72
+ // Navigation buttons
73
+ document.getElementById('next-btn').addEventListener('click', () => {
74
+ // Validate all questions answered
75
+ const unanswered = [...document.querySelectorAll('custom-question-card')]
76
+ .filter(card => !card.getAttribute('selected'));
77
+
78
+ if (unanswered.length > 0) {
79
+ alert('Please answer all questions before proceeding');
80
+ return;
81
+ }
82
+
83
+ // TODO: Save answers and navigate
84
+ window.location.href = 'results.html';
85
+ });
86
+
87
+ document.getElementById('prev-btn').addEventListener('click', () => {
88
+ window.location.href = 'index.html';
89
+ });
90
+ }
91
+ });
style.css CHANGED
@@ -1,28 +1,47 @@
 
 
1
  body {
2
- padding: 2rem;
3
- font-family: -apple-system, BlinkMacSystemFont, "Arial", sans-serif;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
4
  }
5
 
6
- h1 {
7
- font-size: 16px;
8
- margin-top: 0;
9
  }
10
 
11
- p {
12
- color: rgb(107, 114, 128);
13
- font-size: 15px;
14
- margin-bottom: 10px;
15
- margin-top: 5px;
16
  }
17
 
18
- .card {
19
- max-width: 620px;
20
- margin: 0 auto;
21
- padding: 16px;
22
- border: 1px solid lightgray;
23
- border-radius: 16px;
24
  }
25
 
26
- .card p:last-child {
27
- margin-bottom: 0;
 
28
  }
 
1
+ @import url('https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&display=swap');
2
+
3
  body {
4
+ font-family: 'Inter', sans-serif;
5
+ }
6
+
7
+ /* Custom scrollbar */
8
+ ::-webkit-scrollbar {
9
+ width: 8px;
10
+ }
11
+
12
+ ::-webkit-scrollbar-track {
13
+ background: #f1f1f1;
14
+ }
15
+
16
+ ::-webkit-scrollbar-thumb {
17
+ background: #f59e0b;
18
+ border-radius: 4px;
19
+ }
20
+
21
+ ::-webkit-scrollbar-thumb:hover {
22
+ background: #d97706;
23
+ }
24
+ /* Animation classes */
25
+ .fade-in {
26
+ animation: fadeIn 0.3s ease-in-out;
27
  }
28
 
29
+ @keyframes fadeIn {
30
+ from { opacity: 0; transform: translateY(10px); }
31
+ to { opacity: 1; transform: translateY(0); }
32
  }
33
 
34
+ /* Question card styles */
35
+ custom-question-card {
36
+ display: block;
37
+ margin-bottom: 1.5rem;
 
38
  }
39
 
40
+ custom-question-card .option {
41
+ transition: background-color 0.2s ease, border-color 0.2s ease;
 
 
 
 
42
  }
43
 
44
+ custom-question-card .option.selected div:first-child {
45
+ background-color: #f59e0b;
46
+ border-color: #f59e0b;
47
  }