@repobit/dex-system-design 0.11.0 → 0.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +18 -0
- package/package.json +2 -2
- package/src/assets/icons/Identity_protection.png +0 -0
- package/src/assets/icons/arrow_down.png +0 -0
- package/src/assets/icons/arrow_up.png +0 -0
- package/src/assets/icons/device_protection.png +0 -0
- package/src/assets/icons/financial_insurance.png +0 -0
- package/src/assets/icons/privacy_protection.png +0 -0
- package/src/assets/icons/user_guide.png +0 -0
- package/src/components/Button/Button.js +19 -16
- package/src/components/Button/button.css.js +18 -16
- package/src/components/Button/icons.js +8 -8
- package/src/components/FAQ/faq.css.js +48 -49
- package/src/components/FAQ/faq.js +0 -86
- package/src/components/Input/Input.js +68 -6
- package/src/components/Input/custom-form.stories.js +88 -0
- package/src/components/Input/input-clipboard.css.js +168 -0
- package/src/components/Input/input-clipboard.js +137 -0
- package/src/components/Input/input.css.js +122 -42
- package/src/components/accordion/accordion-bg.css.js +117 -0
- package/src/components/accordion/accordion-bg.js +80 -0
- package/src/components/accordion/accordion-no-bg.css.js +114 -0
- package/src/components/accordion/accordion-no-bg.js +80 -0
- package/src/components/accordion/accordion.css.js +88 -0
- package/src/components/accordion/accordion.js +81 -0
- package/src/components/anchor/anchor-nav.css.js +15 -15
- package/src/components/anchor/anchor-nav.js +0 -1
- package/src/components/anchor/anchor.stories.js +10 -13
- package/src/components/badge/badge.css.js +6 -6
- package/src/components/badge/badge.js +1 -2
- package/src/components/badge/badge.stories.js +6 -6
- package/src/components/carousel/carousel.css.js +60 -60
- package/src/components/carousel/carousel.js +26 -30
- package/src/components/carousel/carousel.stories.js +55 -55
- package/src/components/checkbox/checkbox.css.js +14 -14
- package/src/components/divider/divider-horizontal.js +19 -14
- package/src/components/divider/divider-vertical.js +23 -14
- package/src/components/divider/divider.css.js +19 -0
- package/src/components/dropdown/dropdown.css.js +138 -0
- package/src/components/dropdown/dropdown.js +111 -0
- package/src/components/footer/footer-links-group.css.js +42 -0
- package/src/components/footer/footer-links-group.js +25 -0
- package/src/components/footer/footer-lp.css.js +625 -0
- package/src/components/footer/footer-lp.js +368 -0
- package/src/components/footer/footer-lp.stories.js +69 -0
- package/src/components/footer/footer-nav-menu.css.js +24 -0
- package/src/components/footer/footer-nav-menu.js +36 -0
- package/src/components/footer/footer.css.js +625 -0
- package/src/components/footer/footer.js +465 -0
- package/src/components/footer/footer.stories.js +60 -0
- package/src/components/footer/localeMap.js +1 -0
- package/src/components/grid/grid.css.js +38 -0
- package/src/components/grid/grid.js +55 -0
- package/src/components/header/header.css.js +81 -52
- package/src/components/header/header.js +19 -19
- package/src/components/highlight/highlight.css.js +32 -22
- package/src/components/highlight/highlight.js +15 -4
- package/src/components/highlight/highlight.stories.js +4 -4
- package/src/components/light-carousel/light-carousel-simple.css.js +183 -0
- package/src/components/light-carousel/light-carousel-simple.js +73 -0
- package/src/components/light-carousel/light-carousel.css.js +50 -31
- package/src/components/light-carousel/light-carousel.js +14 -57
- package/src/components/light-carousel/light-carousel.stories.js +51 -10
- package/src/components/link/link.css.js +41 -0
- package/src/components/link/link.js +54 -0
- package/src/components/modal/modal.css.js +75 -0
- package/src/components/modal/modal.js +41 -0
- package/src/components/modal/modal.stories.js +40 -0
- package/src/components/paragraph/paragraph.css.js +1 -3
- package/src/components/pricing-cards/new-pricing-card.js +30 -0
- package/src/components/pricing-cards/new-pricing.css.js +58 -0
- package/src/components/pricing-cards/pricing-card-actions.css.js +16 -0
- package/src/components/pricing-cards/pricing-card-actions.js +20 -0
- package/src/components/pricing-cards/pricing-card-container.css.js +41 -0
- package/src/components/pricing-cards/pricing-card-container.js +31 -0
- package/src/components/pricing-cards/pricing-card-header.css.js +70 -0
- package/src/components/pricing-cards/pricing-card-header.js +46 -0
- package/src/components/pricing-cards/pricing-card-pricing.css.js +63 -0
- package/src/components/pricing-cards/pricing-card-pricing.js +101 -0
- package/src/components/pricing-cards/pricing-card-show-more.css.js +22 -0
- package/src/components/pricing-cards/pricing-card-show-more.js +33 -0
- package/src/components/pricing-cards/pricing-card.css.js +91 -89
- package/src/components/pricing-cards/pricing-card.js +13 -16
- package/src/components/pricing-cards/pricing-feature-item.css.js +18 -0
- package/src/components/pricing-cards/pricing-feature-item.js +14 -0
- package/src/components/radio/radio.css.js +18 -18
- package/src/components/radio/radio.js +1 -0
- package/src/components/tabs/tabs.css.js +21 -11
- package/src/components/tabs/tabs.js +24 -18
- package/src/components/termsOfUse/terms.css.js +6 -6
- package/src/components/termsOfUse/terms.js +0 -1
- package/src/stories/demo.stories.js +271 -0
- package/src/tokens/colors.js +10 -10
- package/src/tokens/fonts.stories.js +5 -5
- package/src/tokens/layout.css +4 -3
- package/src/tokens/new-tokens.css +698 -0
- package/src/tokens/spacing.stories.js +1 -1
- package/src/tokens/tokens.css +1063 -0
- package/src/tokens/tokens.stories.js +3 -3
- package/src/tokens/typography.css.js +0 -4
- package/src/tokens/typography.stories.js +2 -2
- package/src/components/Input/index.js +0 -0
- package/src/components/highlight/highlight-s.css.js +0 -88
- package/src/components/highlight/highlight-s.js +0 -35
- package/src/components/highlight/highlight-s.stories.js +0 -22
|
@@ -9,7 +9,7 @@ export default css`
|
|
|
9
9
|
display: inline-flex;
|
|
10
10
|
align-items: center;
|
|
11
11
|
cursor: pointer;
|
|
12
|
-
gap: var(--
|
|
12
|
+
gap: var(--spacing-8);
|
|
13
13
|
font-family: sans-serif;
|
|
14
14
|
font-size: 14px;
|
|
15
15
|
vertical-align: middle;
|
|
@@ -27,9 +27,9 @@ export default css`
|
|
|
27
27
|
|
|
28
28
|
.bd-outer,
|
|
29
29
|
.custom-radio {
|
|
30
|
-
width: var(--
|
|
31
|
-
height: var(--
|
|
32
|
-
border:var(--
|
|
30
|
+
width: var(--spacing-22);
|
|
31
|
+
height: var(--spacing-22);
|
|
32
|
+
border:var(--spacing-2) solid var(--color-blue-500);
|
|
33
33
|
border-radius: 50%;
|
|
34
34
|
display: flex;
|
|
35
35
|
align-items: center;
|
|
@@ -39,8 +39,8 @@ export default css`
|
|
|
39
39
|
}
|
|
40
40
|
|
|
41
41
|
.bd-inner {
|
|
42
|
-
width: var(--
|
|
43
|
-
height: var(--
|
|
42
|
+
width: var(--spacing-12);
|
|
43
|
+
height: var(--spacing-12);
|
|
44
44
|
background-color: var(--color-blue-500);
|
|
45
45
|
border-radius: 50%;
|
|
46
46
|
transform: scale(0);
|
|
@@ -84,8 +84,8 @@ export default css`
|
|
|
84
84
|
|
|
85
85
|
.bd-radio.focus .bd-outer,
|
|
86
86
|
.bd-outer.focus {
|
|
87
|
-
outline: var(--
|
|
88
|
-
outline-offset: var(--
|
|
87
|
+
outline: var(--spacing-2) solid var(--color-blue-500);
|
|
88
|
+
outline-offset: var(--spacing-2);
|
|
89
89
|
}
|
|
90
90
|
|
|
91
91
|
.hidden-input {
|
|
@@ -106,8 +106,8 @@ export default css`
|
|
|
106
106
|
position: absolute;
|
|
107
107
|
top: 50%;
|
|
108
108
|
left: 50%;
|
|
109
|
-
width: var(--
|
|
110
|
-
height: var(--
|
|
109
|
+
width: var(--spacing-12);
|
|
110
|
+
height: var(--spacing-12);
|
|
111
111
|
background-color: #006dff;
|
|
112
112
|
border-radius: 50%;
|
|
113
113
|
transform: translate(-50%, -50%) scale(0);
|
|
@@ -133,23 +133,23 @@ export default css`
|
|
|
133
133
|
}
|
|
134
134
|
|
|
135
135
|
.bd-outer:focus-visible {
|
|
136
|
-
outline: var(--
|
|
137
|
-
outline-offset: var(--
|
|
136
|
+
outline: var(--spacing-2) solid var(--color-blue-500);
|
|
137
|
+
outline-offset: var(--spacing-2);
|
|
138
138
|
}
|
|
139
139
|
.bd-outer:focus:not(:focus-visible) {
|
|
140
140
|
outline: none;
|
|
141
141
|
}
|
|
142
142
|
.bd-outer.focus {
|
|
143
|
-
outline: var(--
|
|
144
|
-
outline-offset: var(--
|
|
143
|
+
outline: var(--spacing-2) solid var(--color-blue-500);
|
|
144
|
+
outline-offset: var(--spacing-2);
|
|
145
145
|
}
|
|
146
146
|
.bd-outer:active {
|
|
147
|
-
outline: var(--
|
|
148
|
-
outline-offset: var(--
|
|
147
|
+
outline: var(--spacing-2) solid var(--color-blue-500);
|
|
148
|
+
outline-offset: var(--spacing-2);
|
|
149
149
|
}
|
|
150
150
|
.bd-outer:focus-visible.checked {
|
|
151
|
-
outline: var(--
|
|
152
|
-
outline-offset: var(--
|
|
151
|
+
outline: var(--spacing-2) solid var(--color-blue-500);
|
|
152
|
+
outline-offset: var(--spacing-2);
|
|
153
153
|
}
|
|
154
154
|
|
|
155
155
|
.bd-outer:focus-visible.checked .bd-inner {
|
|
@@ -11,17 +11,27 @@ export default css`
|
|
|
11
11
|
--text-color-white: var(--color-neutral-0);
|
|
12
12
|
font-size: 100%;
|
|
13
13
|
display: block;
|
|
14
|
-
font-family: var(--
|
|
14
|
+
font-family: var(--typography-fontFamily-sans);
|
|
15
|
+
padding-top: var(--spacing-64);
|
|
16
|
+
padding-bottom: var(--spacing-64);
|
|
15
17
|
}
|
|
16
|
-
|
|
18
|
+
.bd-tabs-subtitle{
|
|
19
|
+
font-size: var(--typography-body-regular-fontSize);
|
|
20
|
+
max-width: 500px;
|
|
21
|
+
text-align: center;
|
|
22
|
+
font-family: var(--typography-fontFamily-sans);
|
|
23
|
+
margin-top: var(--spacing-32);
|
|
24
|
+
margin-bottom: var(--spacing-32);
|
|
25
|
+
|
|
26
|
+
}
|
|
17
27
|
.bd-tab-button p {
|
|
18
28
|
margin-top: 1em;
|
|
19
29
|
margin-bottom: 1em;
|
|
20
30
|
}
|
|
21
31
|
.bd-tab-button:focus-visible,
|
|
22
32
|
.bd-find-out-more:focus-visible {
|
|
23
|
-
outline: var(--
|
|
24
|
-
outline-offset: var(--
|
|
33
|
+
outline: var(--spacing-2) solid var(--bd-accesibility-focus);
|
|
34
|
+
outline-offset: var(--spacing-2);
|
|
25
35
|
border-radius: var(--space-2xs);
|
|
26
36
|
}
|
|
27
37
|
.bd-tabs-component .bd-left img {
|
|
@@ -47,7 +57,7 @@ export default css`
|
|
|
47
57
|
flex: 1;
|
|
48
58
|
justify-content: center;
|
|
49
59
|
align-items: center;
|
|
50
|
-
padding:
|
|
60
|
+
padding: var(--spacing-0) var(--spacing-24);
|
|
51
61
|
}
|
|
52
62
|
|
|
53
63
|
.bd-tabs-container {
|
|
@@ -57,6 +67,7 @@ export default css`
|
|
|
57
67
|
flex-wrap: wrap;
|
|
58
68
|
border-bottom: 1px solid #e4f2ff;
|
|
59
69
|
margin: 0 auto;
|
|
70
|
+
margin-bottom: var(--spacing-32);
|
|
60
71
|
}
|
|
61
72
|
|
|
62
73
|
.bd-tabs-container button {
|
|
@@ -119,7 +130,6 @@ export default css`
|
|
|
119
130
|
display: flex;
|
|
120
131
|
flex-direction: column;
|
|
121
132
|
align-items: center;
|
|
122
|
-
margin-top: 48px;
|
|
123
133
|
}
|
|
124
134
|
|
|
125
135
|
.bd-ul-privacy {
|
|
@@ -137,8 +147,8 @@ export default css`
|
|
|
137
147
|
align-items: start;
|
|
138
148
|
position: relative;
|
|
139
149
|
cursor: pointer;
|
|
140
|
-
font-family: var(--
|
|
141
|
-
font-weight: var(--
|
|
150
|
+
font-family: var(--typography-fontFamily-sans);
|
|
151
|
+
font-weight: var(--typography-fontWeight-semibold);
|
|
142
152
|
}
|
|
143
153
|
|
|
144
154
|
.bd-find-out-more .bd-arrow svg {
|
|
@@ -149,12 +159,12 @@ export default css`
|
|
|
149
159
|
}
|
|
150
160
|
|
|
151
161
|
.bd-right h3 {
|
|
152
|
-
font-size:
|
|
162
|
+
font-size: var(--typography-heading-h4-fontSize);
|
|
153
163
|
}
|
|
154
164
|
|
|
155
165
|
.bd-section-title {
|
|
156
|
-
font-family: var(--
|
|
157
|
-
font-weight: var(--
|
|
166
|
+
font-family: var(--typography-fontFamily-sans);
|
|
167
|
+
font-weight: var(--typography-fontWeight-semibold);
|
|
158
168
|
}
|
|
159
169
|
|
|
160
170
|
/* ✅ Responsive Design */
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { LitElement, html } from "lit";
|
|
2
2
|
import { tokens } from "../../tokens/tokens.js";
|
|
3
|
-
|
|
4
3
|
import tabsCSS from "../tabs/tabs.css.js";
|
|
5
4
|
|
|
6
5
|
class TabsComponent extends LitElement {
|
|
@@ -14,7 +13,6 @@ class TabsComponent extends LitElement {
|
|
|
14
13
|
}
|
|
15
14
|
|
|
16
15
|
selectTab(index) {
|
|
17
|
-
console.log("Selected Tab:", index);
|
|
18
16
|
this.selectedTab = index;
|
|
19
17
|
this.requestUpdate();
|
|
20
18
|
}
|
|
@@ -23,23 +21,23 @@ class TabsComponent extends LitElement {
|
|
|
23
21
|
const tabs = [
|
|
24
22
|
{
|
|
25
23
|
title : "Privacy Protection",
|
|
26
|
-
imageBase: "
|
|
27
|
-
icon : "
|
|
24
|
+
imageBase: "/assets/tabs-img1.png",
|
|
25
|
+
icon : "/assets/pic1.png"
|
|
28
26
|
},
|
|
29
27
|
{
|
|
30
28
|
title : "Identity Protection",
|
|
31
|
-
imageBase: "
|
|
32
|
-
icon : "
|
|
29
|
+
imageBase: "/assets/tabs-img2.png",
|
|
30
|
+
icon : "/assets/pic2.png"
|
|
33
31
|
},
|
|
34
32
|
{
|
|
35
33
|
title : "Device Protection",
|
|
36
|
-
imageBase: "
|
|
37
|
-
icon : "
|
|
34
|
+
imageBase: "/assets/tabs-img3.png",
|
|
35
|
+
icon : "/assets/pic3.png"
|
|
38
36
|
},
|
|
39
37
|
{
|
|
40
38
|
title : "Financial Insurance",
|
|
41
|
-
imageBase: "
|
|
42
|
-
icon : "
|
|
39
|
+
imageBase: "/assets/tabs-img3.png",
|
|
40
|
+
icon : "/assets/pic3.png"
|
|
43
41
|
}
|
|
44
42
|
];
|
|
45
43
|
|
|
@@ -106,15 +104,17 @@ class TabsComponent extends LitElement {
|
|
|
106
104
|
|
|
107
105
|
return html`
|
|
108
106
|
<div class="bd-tabs-component">
|
|
109
|
-
<
|
|
110
|
-
|
|
111
|
-
|
|
107
|
+
<bd-highlight highlight-text="family member">
|
|
108
|
+
Customized online protection for each family member - Smart, Private &
|
|
109
|
+
Safe
|
|
110
|
+
</bd-highlight>
|
|
111
|
+
<p class="bd-tabs-subtitle">Your family is unique and so should be your online security. Our family protection plan adapts to each member’s needs, offering the ideal mix of privacy, freedom, and safety.</p>
|
|
112
112
|
<div class="bd-tabs-container">
|
|
113
113
|
${tabs.map(
|
|
114
114
|
(tab, index) => html`
|
|
115
115
|
<button
|
|
116
|
-
role="tab"
|
|
117
|
-
aria-selected="${this.selectedTab === index ?
|
|
116
|
+
role="tab"
|
|
117
|
+
aria-selected="${this.selectedTab === index ? "true" : "false"}"
|
|
118
118
|
class=${this.selectedTab === index
|
|
119
119
|
? "bd-selected bd-tab-button"
|
|
120
120
|
: "bd-tab-button"}
|
|
@@ -152,14 +152,20 @@ class TabsComponent extends LitElement {
|
|
|
152
152
|
</picture>
|
|
153
153
|
</div>
|
|
154
154
|
<div class="bd-right">
|
|
155
|
-
<h3 id="tab-content-heading-${this.selectedTab}"
|
|
156
|
-
|
|
155
|
+
<h3 id="tab-content-heading-${this.selectedTab}">
|
|
156
|
+
${content[this.selectedTab].heading}
|
|
157
|
+
</h3>
|
|
158
|
+
<div
|
|
159
|
+
id="tab-content-${this.selectedTab}"
|
|
160
|
+
aria-labelledby="tab-content-heading-${this.selectedTab}"
|
|
161
|
+
>
|
|
157
162
|
${content[this.selectedTab].description()}
|
|
158
163
|
</div>
|
|
159
164
|
<a
|
|
160
165
|
href="${content[this.selectedTab].href}"
|
|
161
166
|
class="bd-find-out-more"
|
|
162
|
-
aria-label="Find out more about ${content[this.selectedTab]
|
|
167
|
+
aria-label="Find out more about ${content[this.selectedTab]
|
|
168
|
+
.heading}"
|
|
163
169
|
>
|
|
164
170
|
Find out more
|
|
165
171
|
<span class="bd-arrow">
|
|
@@ -14,26 +14,26 @@ export default css`
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
.bd-terms-text-a:focus-visible{
|
|
17
|
-
outline: var(--
|
|
18
|
-
outline-offset: var(--
|
|
17
|
+
outline: var(--spacing-2) solid var(--bd-accesibility-focus);
|
|
18
|
+
outline-offset: var(--spacing-2);
|
|
19
19
|
border-radius: var(--space-2xs);
|
|
20
20
|
}
|
|
21
21
|
.bd-terms-container {
|
|
22
22
|
background: #f2f2f2;
|
|
23
|
-
padding: var(--
|
|
23
|
+
padding: var(--spacing-44) 0;
|
|
24
24
|
font-family: Arial, Helvetica, sans-serif;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
.bd-terms-wrapper {
|
|
28
|
-
padding: var(--
|
|
28
|
+
padding: var(--spacing-14) var(--spacing-20) var(--spacing-40) var(--spacing-20);
|
|
29
29
|
}
|
|
30
30
|
|
|
31
31
|
#bd-terms-of-use {
|
|
32
|
-
font-size: var(--
|
|
32
|
+
font-size: var(--spacing-16);
|
|
33
33
|
}
|
|
34
34
|
|
|
35
35
|
.bd-terms-text-p {
|
|
36
|
-
font-size: var(--
|
|
36
|
+
font-size: var(--spacing-12);
|
|
37
37
|
line-height: 1.31;
|
|
38
38
|
letter-spacing: 0.006em;
|
|
39
39
|
padding: 0;
|
|
@@ -0,0 +1,271 @@
|
|
|
1
|
+
// src/stories/DesignSystem.stories.js
|
|
2
|
+
import '/src/components/Anchor/anchor-nav.js';
|
|
3
|
+
import '/src/components/badge/badge.js';
|
|
4
|
+
import '/src/components/Button/Button.js';
|
|
5
|
+
import '/src/components/carousel/carousel.js';
|
|
6
|
+
import '/src/components/checkbox/checkbox.js';
|
|
7
|
+
import '/src/components/divider/divider-horizontal.js';
|
|
8
|
+
import '/src/components/divider/divider-vertical.js';
|
|
9
|
+
import '/src/components/FAQ/faq.js';
|
|
10
|
+
import '/src/components/header/header.js';
|
|
11
|
+
import '/src/components/highlight/highlight.js';
|
|
12
|
+
import '/src/components/input/input.js';
|
|
13
|
+
import '/src/components/light-carousel/light-carousel.js';
|
|
14
|
+
import '/src/components/paragraph/paragraph.js';
|
|
15
|
+
import '/src/components/pricing-cards/pricing-card.js';
|
|
16
|
+
import '/src/components/radio/radio.js';
|
|
17
|
+
import '/src/components/tabs/tabs.js';
|
|
18
|
+
import '/src/components/termsOfUse/terms.js';
|
|
19
|
+
|
|
20
|
+
export default {
|
|
21
|
+
title : 'Design System/Demo full page',
|
|
22
|
+
parameters: {
|
|
23
|
+
// eventuale parametri Storybook (ex: backgrounds, viewport etc)
|
|
24
|
+
},
|
|
25
|
+
decorators: [
|
|
26
|
+
(Story) => {
|
|
27
|
+
// injectează token-urile CSS global în Storybook (dacă nu sunt deja)
|
|
28
|
+
return `
|
|
29
|
+
<link rel="stylesheet" href="/src/tokens/tokens.css" />
|
|
30
|
+
<link rel="stylesheet" href="/src/tokens/layout.css" />
|
|
31
|
+
<link rel="stylesheet" href="/src/tokens/typography.css" />
|
|
32
|
+
<link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;600&display=swap" rel="stylesheet" />
|
|
33
|
+
${Story()}
|
|
34
|
+
`;
|
|
35
|
+
}
|
|
36
|
+
]
|
|
37
|
+
};
|
|
38
|
+
|
|
39
|
+
export const FullPage = () => `
|
|
40
|
+
<bd-header
|
|
41
|
+
product-name="Bitdefender Ultimate Security"
|
|
42
|
+
value-prop="Complete Security, Advanced Privacy, and Identity Protection"
|
|
43
|
+
description="All in one plan to incorporate multi-awarded device protection, solid password management, unlimited VPN traffic & personalized protection for your online identity."
|
|
44
|
+
full-price="$139.99"
|
|
45
|
+
discount="Save 44%"
|
|
46
|
+
final-price="$79.99"
|
|
47
|
+
>
|
|
48
|
+
<div class="bd-header-right">
|
|
49
|
+
<img
|
|
50
|
+
class="bd-header-image"
|
|
51
|
+
src="/assets/bd-header-us.jpg"
|
|
52
|
+
alt="Security illustration"
|
|
53
|
+
/>
|
|
54
|
+
</div>
|
|
55
|
+
</bd-header>
|
|
56
|
+
|
|
57
|
+
<bd-anchor-nav>
|
|
58
|
+
<bd-anchor-nav-item title="Anchor 1" id="anchor-1"></bd-anchor-nav-item>
|
|
59
|
+
<bd-anchor-nav-item title="Anchor 2" id="anchor-2"></bd-anchor-nav-item>
|
|
60
|
+
<bd-anchor-nav-item title="Anchor 3" id="anchor-3"></bd-anchor-nav-item>
|
|
61
|
+
</bd-anchor-nav>
|
|
62
|
+
|
|
63
|
+
<p>Let’s Secure Your Digital Life</p>
|
|
64
|
+
|
|
65
|
+
<bd-highlight-text highlight-text="next generation of digital security">
|
|
66
|
+
Introducing the next generation of digital security: your personalized shield for a worry-free online experience.
|
|
67
|
+
</bd-highlight-text>
|
|
68
|
+
|
|
69
|
+
<bd-light-carousel-section
|
|
70
|
+
title="Our AI-powered platform that detects and fights scams. In real time."
|
|
71
|
+
>
|
|
72
|
+
<bd-light-carousel-item
|
|
73
|
+
title="Scam Copilot Chatbot"
|
|
74
|
+
icon="/assets/light-carousel-img1.png"
|
|
75
|
+
badge="NEW"
|
|
76
|
+
>
|
|
77
|
+
<p>
|
|
78
|
+
Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.
|
|
79
|
+
</p>
|
|
80
|
+
</bd-light-carousel-item>
|
|
81
|
+
|
|
82
|
+
<bd-light-carousel-item
|
|
83
|
+
title="Scam Wave Alerts"
|
|
84
|
+
icon="/assets/light-carousel-img1.png"
|
|
85
|
+
badge="NEW"
|
|
86
|
+
>
|
|
87
|
+
<p>
|
|
88
|
+
Stay informed with real-time alerts about ongoing scam outbreaks detected in your area automatically.
|
|
89
|
+
</p>
|
|
90
|
+
</bd-light-carousel-item>
|
|
91
|
+
|
|
92
|
+
<bd-light-carousel-item
|
|
93
|
+
title="Online Scam Protection"
|
|
94
|
+
icon="/assets/light-carousel-img1.png"
|
|
95
|
+
badge="NEW"
|
|
96
|
+
>
|
|
97
|
+
<p>Focused on browsing activities, it specializes in detecting the newest scam patterns and tactics.</p>
|
|
98
|
+
</bd-light-carousel-item>
|
|
99
|
+
|
|
100
|
+
<bd-light-carousel-item
|
|
101
|
+
title="Remote Access Protection"
|
|
102
|
+
icon="/assets/light-carousel-img1.png"
|
|
103
|
+
badge="NEW"
|
|
104
|
+
>
|
|
105
|
+
<p>Detects patterns of behavior typical of scammers seeking to access your data remotely.</p>
|
|
106
|
+
</bd-light-carousel-item>
|
|
107
|
+
|
|
108
|
+
<bd-light-carousel-item
|
|
109
|
+
title="SMS Protection"
|
|
110
|
+
icon="/assets/light-carousel-img1.png"
|
|
111
|
+
badge="IMPROVED"
|
|
112
|
+
>
|
|
113
|
+
<p>Detects scams and harmful links in SMS messages3 using advanced AI for fast, real-time protection.</p>
|
|
114
|
+
</bd-light-carousel-item>
|
|
115
|
+
|
|
116
|
+
<bd-light-carousel-item
|
|
117
|
+
title="Email Protection"
|
|
118
|
+
icon="/assets/light-carousel-img1.png"
|
|
119
|
+
>
|
|
120
|
+
<p>Detects scams and harmful links in SMS messages3 using advanced AI for fast, real-time protection.</p>
|
|
121
|
+
</bd-light-carousel-item>
|
|
122
|
+
|
|
123
|
+
<bd-light-carousel-item
|
|
124
|
+
title="Scam Notification Protection"
|
|
125
|
+
icon="/assets/light-carousel-img1.png"
|
|
126
|
+
>
|
|
127
|
+
<p>Scans and detects scam attempts directly in push notifications4 before you even tap or interact.</p>
|
|
128
|
+
</bd-light-carousel-item>
|
|
129
|
+
|
|
130
|
+
<bd-light-carousel-item
|
|
131
|
+
title="Chat Protection"
|
|
132
|
+
icon="/assets/light-carousel-img1.png"
|
|
133
|
+
>
|
|
134
|
+
<p>Identifies scam messages in WhatsApp, Messenger, Telegram and Discord chats4 before they reach your attention.</p>
|
|
135
|
+
</bd-light-carousel-item>
|
|
136
|
+
|
|
137
|
+
<bd-light-carousel-item
|
|
138
|
+
title="Calendar Invites Protection"
|
|
139
|
+
icon="/assets/light-carousel-img1.png"
|
|
140
|
+
>
|
|
141
|
+
<p>Finds and blocks scam calendar events5 before they can trick you with fake links or misleading invites.</p>
|
|
142
|
+
</bd-light-carousel-item>
|
|
143
|
+
</bd-light-carousel-section>
|
|
144
|
+
|
|
145
|
+
<div class="tabs">
|
|
146
|
+
<bd-tabs-component id="anchor-2-section"></bd-tabs-component>
|
|
147
|
+
</div>
|
|
148
|
+
|
|
149
|
+
<bd-faq-section title="Questions? Answers." id="anchor-1-section">
|
|
150
|
+
<bd-faq-section-item title="How does Bitdefender Internet Security protect me?">
|
|
151
|
+
<p>Bitdefender Internet Security provides the best protection...</p>
|
|
152
|
+
<p>Bitdefender Internet Security provides the best protection...</p>
|
|
153
|
+
<p>Bitdefender Internet Security provides the best protection...</p>
|
|
154
|
+
</bd-faq-section-item>
|
|
155
|
+
|
|
156
|
+
<bd-faq-section-item title="Does Bitdefender protect me against ransomware?">
|
|
157
|
+
<p>Yes! Bitdefender Internet Security offers unbeatable ransomware protection...</p>
|
|
158
|
+
</bd-faq-section-item>
|
|
159
|
+
|
|
160
|
+
<bd-faq-section-item title="Do I get a VPN with Bitdefender Internet Security?">
|
|
161
|
+
<p>Bitdefender Internet Security includes a basic VPN with 200MB per day.</p>
|
|
162
|
+
</bd-faq-section-item>
|
|
163
|
+
</bd-faq-section>
|
|
164
|
+
|
|
165
|
+
<div class="bd-answer">
|
|
166
|
+
<bd-terms-section></bd-terms-section>
|
|
167
|
+
</div>
|
|
168
|
+
|
|
169
|
+
<bd-carousel-section
|
|
170
|
+
title="Need help? We've got answers!"
|
|
171
|
+
id="anchor-3-section"
|
|
172
|
+
>
|
|
173
|
+
<bd-carousel-item
|
|
174
|
+
title="Scam Copilot Bot"
|
|
175
|
+
subTitle="Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim"
|
|
176
|
+
modalText="Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim"
|
|
177
|
+
icon="/assets/light-carousel-img1.png"
|
|
178
|
+
>
|
|
179
|
+
<h3>Scam Copilot Bot</h3>
|
|
180
|
+
<p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
|
|
181
|
+
<p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
|
|
182
|
+
<p>Specialized AI chatbot that helps you identify suspicious online interactions so you don’t become a victim.</p>
|
|
183
|
+
<h6>Testare Scam Copilot</h6>
|
|
184
|
+
</bd-carousel-item>
|
|
185
|
+
|
|
186
|
+
<bd-carousel-item
|
|
187
|
+
title="Scam Wave Alerts"
|
|
188
|
+
subTitle="Proactively informs you about scam outbreaks in your region"
|
|
189
|
+
modalText="Proactively informs you about scam outbreaks in your region"
|
|
190
|
+
icon="/assets/light-carousel-img1.png"
|
|
191
|
+
>
|
|
192
|
+
<h3>Scam Wave Alerts</h3>
|
|
193
|
+
<p>Proactively informs you about scam outbreaks in your region.</p>
|
|
194
|
+
</bd-carousel-item>
|
|
195
|
+
|
|
196
|
+
<bd-carousel-item
|
|
197
|
+
title="AI-Powered Scam Check"
|
|
198
|
+
subTitle="AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction"
|
|
199
|
+
modalText="AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction"
|
|
200
|
+
icon="/assets/light-carousel-img1.png"
|
|
201
|
+
>
|
|
202
|
+
<h3>AI-Powered Scam Check</h3>
|
|
203
|
+
<p>AI-driven tool that instantly evaluates the legitimacy of any link, message, or online interaction.</p>
|
|
204
|
+
</bd-carousel-item>
|
|
205
|
+
|
|
206
|
+
<bd-carousel-item
|
|
207
|
+
title="Educational Resources"
|
|
208
|
+
subTitle="Access a wealth of information and best practices to stay informed and vigilant against scams"
|
|
209
|
+
modalText="Access a wealth of information and best practices to stay informed and vigilant against scams"
|
|
210
|
+
icon="/assets/light-carousel-img1.png"
|
|
211
|
+
>
|
|
212
|
+
<h3>Educational Resources</h3>
|
|
213
|
+
<p>Access a wealth of information and best practices to stay informed and vigilant against scams.</p>
|
|
214
|
+
</bd-carousel-item>
|
|
215
|
+
|
|
216
|
+
<bd-carousel-item
|
|
217
|
+
title="Phishing Simulator"
|
|
218
|
+
subTitle="Simulates phishing attacks to help you recognize and respond appropriately to real threats"
|
|
219
|
+
modalText="Simulates phishing attacks to help you recognize and respond appropriately to real threats"
|
|
220
|
+
icon="/assets/light-carousel-img1.png"
|
|
221
|
+
>
|
|
222
|
+
<h3>Phishing Simulator</h3>
|
|
223
|
+
<p>Simulates phishing attacks to help you recognize and respond appropriately to real threats.</p>
|
|
224
|
+
</bd-carousel-item>
|
|
225
|
+
|
|
226
|
+
<bd-carousel-item
|
|
227
|
+
title="Real-Time Scam Updates"
|
|
228
|
+
subTitle="Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry"
|
|
229
|
+
modalText="Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry"
|
|
230
|
+
icon="/assets/light-carousel-img1.png"
|
|
231
|
+
>
|
|
232
|
+
<h3>Real-Time Scam Updates</h3>
|
|
233
|
+
<p>Stay ahead with up-to-the-minute alerts on the latest scams targeting your region or industry.</p>
|
|
234
|
+
</bd-carousel-item>
|
|
235
|
+
|
|
236
|
+
<bd-carousel-item
|
|
237
|
+
title="Community Reporting Hub"
|
|
238
|
+
subTitle="A platform where users can report scams and share experiences to help protect others"
|
|
239
|
+
modalText="A platform where users can report scams and share experiences to help protect others"
|
|
240
|
+
icon="/assets/light-carousel-img1.png"
|
|
241
|
+
>
|
|
242
|
+
<h3>Community Reporting Hub</h3>
|
|
243
|
+
<p>A platform where users can report scams and share experiences to help protect others.</p>
|
|
244
|
+
</bd-carousel-item>
|
|
245
|
+
|
|
246
|
+
<bd-carousel-item
|
|
247
|
+
title="Fraud Prevention Workshops"
|
|
248
|
+
subTitle="Interactive workshops that educate users on identifying and avoiding scams"
|
|
249
|
+
modalText="Interactive workshops that educate users on identifying and avoiding scams"
|
|
250
|
+
icon="/assets/light-carousel-img1.png"
|
|
251
|
+
>
|
|
252
|
+
<h3>Fraud Prevention Workshops</h3>
|
|
253
|
+
<p>Interactive workshops that educate users on identifying and avoiding scams.</p>
|
|
254
|
+
</bd-carousel-item>
|
|
255
|
+
</bd-carousel-section>
|
|
256
|
+
|
|
257
|
+
<bd-toggle-radio name="group1" value="opt1" label="Toggle 1" disabled></bd-toggle-radio>
|
|
258
|
+
<bd-toggle-radio name="group1" value="opt1" label="Toggle 1" disabled checked></bd-toggle-radio>
|
|
259
|
+
<bd-toggle-radio name="group1" value="opt2" label="Toggle 2"></bd-toggle-radio>
|
|
260
|
+
<bd-toggle-radio name="billing" value="yearly" label="Yearly"></bd-toggle-radio>
|
|
261
|
+
<bd-toggle-radio name="billing" value="monthly" label="Monthly"></bd-toggle-radio>
|
|
262
|
+
<bd-radio name="billing" value="yearly" label="Yearly"></bd-radio>
|
|
263
|
+
<bd-radio disabled checked label="Test" value="x"></bd-radio>
|
|
264
|
+
<bd-checkbox label="Accept terms" checked></bd-checkbox>
|
|
265
|
+
|
|
266
|
+
<div style="padding: 40px 0;">
|
|
267
|
+
<bd-divider-horizontal></bd-divider-horizontal>
|
|
268
|
+
</div>
|
|
269
|
+
|
|
270
|
+
<bd-badge>Badge</bd-badge>
|
|
271
|
+
`;
|
package/src/tokens/colors.js
CHANGED
|
@@ -83,34 +83,34 @@ export const colors = `
|
|
|
83
83
|
/* Heading default */
|
|
84
84
|
--heading-xxsmall: 18pt;
|
|
85
85
|
--heading-xsmall: 20pt;
|
|
86
|
-
--heading-
|
|
86
|
+
--typography-heading-h4-fontSize: 24pt;
|
|
87
87
|
--heading-medium: 28pt;
|
|
88
|
-
--
|
|
88
|
+
--typography-fontSize-3xl: 32pt;
|
|
89
89
|
--heading-xlarge: 36pt;
|
|
90
90
|
--heading-xxlarge: 40pt;
|
|
91
91
|
|
|
92
92
|
/* Heading mobile */
|
|
93
93
|
--heading-xxsmall-mobile: 18pt;
|
|
94
94
|
--heading-xsmall-mobile: 20pt;
|
|
95
|
-
--heading-
|
|
95
|
+
--typography-heading-h4-fontSize-mobile: 24pt;
|
|
96
96
|
--heading-medium-mobile: 26pt;
|
|
97
|
-
--
|
|
97
|
+
--typography-fontSize-3xl-mobile: 28pt;
|
|
98
98
|
--heading-xlarge-mobile: 30pt;
|
|
99
99
|
--heading-xxlarge-mobile: 32pt;
|
|
100
100
|
|
|
101
101
|
/* Body default */
|
|
102
102
|
--body-small: 13pt;
|
|
103
|
-
--body-
|
|
104
|
-
--body-
|
|
103
|
+
--typography-body-small-fontSize: 14pt;
|
|
104
|
+
--typography-body-regular-fontSize: 16pt;
|
|
105
105
|
--body-xlarge: 18pt;
|
|
106
106
|
|
|
107
107
|
/* Caption default */
|
|
108
|
-
--
|
|
109
|
-
--
|
|
108
|
+
--typography-label-extra-small-fontSize: 11pt;
|
|
109
|
+
--typography-label-small-fontSize: 12pt;
|
|
110
110
|
|
|
111
111
|
/* Caption mobile */
|
|
112
|
-
--
|
|
113
|
-
--
|
|
112
|
+
--typography-label-extra-small-fontSize-mobile: 11pt;
|
|
113
|
+
--typography-label-small-fontSize-mobile: 12pt;
|
|
114
114
|
}
|
|
115
115
|
`;
|
|
116
116
|
|
|
@@ -10,7 +10,7 @@ export const FontFace = () => html`
|
|
|
10
10
|
margin-bottom: 24px;
|
|
11
11
|
}
|
|
12
12
|
h3 {
|
|
13
|
-
font-family: var(--
|
|
13
|
+
font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
|
|
14
14
|
font-weight: 600;
|
|
15
15
|
font-size: 1.2rem;
|
|
16
16
|
margin-bottom: 12px;
|
|
@@ -20,22 +20,22 @@ export const FontFace = () => html`
|
|
|
20
20
|
font-size: 1.1rem;
|
|
21
21
|
}
|
|
22
22
|
.sans-normal {
|
|
23
|
-
font-family: var(--
|
|
23
|
+
font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
|
|
24
24
|
font-weight: 400;
|
|
25
25
|
font-style: normal;
|
|
26
26
|
}
|
|
27
27
|
.sans-semibold {
|
|
28
|
-
font-family: var(--
|
|
28
|
+
font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
|
|
29
29
|
font-weight: 600;
|
|
30
30
|
font-style: normal;
|
|
31
31
|
}
|
|
32
32
|
.sans-bold {
|
|
33
|
-
font-family: var(--
|
|
33
|
+
font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
|
|
34
34
|
font-weight: 700;
|
|
35
35
|
font-style: normal;
|
|
36
36
|
}
|
|
37
37
|
.sans-italic {
|
|
38
|
-
font-family: var(--
|
|
38
|
+
font-family: var(--typography-fontFamily-sans, 'IBM Plex Sans', Arial, sans-serif);
|
|
39
39
|
font-weight: 400;
|
|
40
40
|
font-style: italic;
|
|
41
41
|
}
|