Skip to content

Commit 01dc029

Browse files
committed
[PRAC/cont] Add icon/states for "add-btn"
Organiz states for "add-btn" (icon changes), styling according UI-kit. Worth noting: - solution to using 3-ee "spans" to change/replace colors/icons (maybe not the final solve). core: B-3 / JS-BL
1 parent 48ce152 commit 01dc029

File tree

7 files changed

+99
-5
lines changed

7 files changed

+99
-5
lines changed
Lines changed: 76 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
.crm__add-data {}
2-
31
.crm__add-container {
42
display: flex;
53
justify-content: center;
@@ -9,13 +7,88 @@
97
}
108

119
.crm__add-btn {
10+
display: flex;
11+
justify-content: flex-end;
12+
align-items: center;
13+
position: relative;
1214
border: 1px solid var(--main-purple);
1315
padding: 12px 25px;
1416
min-width: 217px;
15-
/* min-height: 47px; */
1617
font-family: var(--open-sans), sans-serif;
1718
font-weight: var(--semi-bold);
1819
font-size: var(--default-fs);
1920
color: var(--main-purple);
2021
background: transparent;
22+
outline: none;
23+
overflow: hidden;
24+
transition-property: border, color, background-color;
25+
transition-duration: var(--short);
26+
transition-timing-function: ease;
27+
}
28+
29+
.crm__add-btn:focus-visible:not(:hover) {
30+
color: var(--white);
31+
background-color: var(--dark-purple);
32+
}
33+
34+
.crm__add-btn:focus-visible:not(:hover) .default-add-icon {
35+
opacity: 0;
36+
}
37+
38+
.crm__add-btn:focus-visible:not(:hover) .white-add-icon {
39+
opacity: 1;
40+
}
41+
42+
.crm__add-btn:active {
43+
border: 1px solid var(--gray);
44+
color: var(--gray);
45+
background-color: transparent;
46+
}
47+
48+
.crm__add-btn:active .default-add-icon {
49+
opacity: 0;
50+
}
51+
52+
.crm__add-btn:active .gray-add-icon {
53+
opacity: 1;
54+
}
55+
56+
.crm__add-btn-icon {
57+
position: absolute;
58+
left: 27px;
59+
width: 22px;
60+
height: 16px;
61+
transition: opacity var(--short) ease;
62+
}
63+
64+
.default-add-icon {
65+
background: url('../images/add-client.svg') no-repeat center / contain;
66+
opacity: 1;
67+
}
68+
69+
.white-add-icon {
70+
background: url('../images/add-client-white.svg') no-repeat center / contain;
71+
opacity: 0;
72+
}
73+
74+
.gray-add-icon {
75+
background: url('../images/add-client-gray.svg') no-repeat center / contain;
76+
opacity: 0;
77+
}
78+
79+
/* media queries, any-hover */
80+
81+
@media (any-hover: hover) {
82+
.crm__add-btn:hover:not(:active) {
83+
color: var(--white);
84+
background-color: var(--light-purple);
85+
}
86+
87+
.crm__add-btn:hover:not(:active) .default-add-icon {
88+
opacity: 0;
89+
}
90+
91+
.crm__add-btn:hover:not(:active) .white-add-icon {
92+
opacity: 1;
93+
}
2194
}

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/css/crm-output.css

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333

3434
.crm__output-table {
3535
margin-bottom: 0;
36-
min-height: 400px;
36+
min-height: 322px;
3737
font-family: var(--open-sans), sans-serif;
3838
font-weight: var(--regular);
3939
background-color: var(--white);

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/css/variables.css

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,9 @@
1818
--black: #333;
1919
--white: #fff;
2020
--main-purple: #9873FF;
21+
--light-purple: #B89EFF;
22+
--dark-purple: #8052FF;
23+
--gray: #C8C5D1;
2124
--text-gray: #B0B0B0;
2225
--specific-gray: #85859b;
2326
--bg-page: #F5F5F5;
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading
Lines changed: 3 additions & 0 deletions
Loading

core-courses/3-js-basic-level/practicum-js-basic-level/sb-crm-client/js/index.js

Lines changed: 10 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -224,12 +224,21 @@
224224
// организация кнопки/модального окна для добавления клиентов (удаления/изменения)
225225
const addBtnWrap = document.createElement('div');
226226
const addBtn = document.createElement('button');
227+
const addBtnDefaultIcon = document.createElement('span');
228+
const addBtnWhiteIcon = document.createElement('span');
229+
const addBtnGrayIcon = document.createElement('span');
230+
const addBtnText = document.createElement('span');
227231
const addModalWrap = document.createElement('div');
228232

229233
addBtn.classList.add('crm__add-btn');
234+
addBtnDefaultIcon.classList.add('crm__add-btn-icon', 'default-add-icon');
235+
addBtnWhiteIcon.classList.add('crm__add-btn-icon', 'white-add-icon');
236+
addBtnGrayIcon.classList.add('crm__add-btn-icon', 'gray-add-icon');
237+
addBtnText.classList.add('crm__add-btn-text');
230238

231-
addBtn.textContent = 'Добавить клиента';
239+
addBtnText.textContent = 'Добавить клиента';
232240

241+
addBtn.append(addBtnDefaultIcon, addBtnWhiteIcon, addBtnGrayIcon, addBtnText);
233242
addBtnWrap.append(addBtn, addModalWrap);
234243
crmAddContainer.append(addBtnWrap);
235244

0 commit comments

Comments
 (0)