thulieu commited on
Commit
3b60160
·
verified ·
1 Parent(s): c9ba648

Upload 63 files

Browse files
.gitattributes CHANGED
@@ -46,3 +46,23 @@ assets/img/testimonial-perfil-1.png filter=lfs diff=lfs merge=lfs -text
46
  assets/img/testimonial-perfil-2.png filter=lfs diff=lfs merge=lfs -text
47
  assets/img/testimonial-perfil-3.png filter=lfs diff=lfs merge=lfs -text
48
  assets/img/testimonial-perfil-4.png filter=lfs diff=lfs merge=lfs -text
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
46
  assets/img/testimonial-perfil-2.png filter=lfs diff=lfs merge=lfs -text
47
  assets/img/testimonial-perfil-3.png filter=lfs diff=lfs merge=lfs -text
48
  assets/img/testimonial-perfil-4.png filter=lfs diff=lfs merge=lfs -text
49
+ assets/img/kn_1.png filter=lfs diff=lfs merge=lfs -text
50
+ assets/img/kn_2.png filter=lfs diff=lfs merge=lfs -text
51
+ assets/img/kn_3.png filter=lfs diff=lfs merge=lfs -text
52
+ assets/img/kn_4.png filter=lfs diff=lfs merge=lfs -text
53
+ assets/img/kn_5.png filter=lfs diff=lfs merge=lfs -text
54
+ assets/img/kn_6.png filter=lfs diff=lfs merge=lfs -text
55
+ assets/img/ntt_1_2.png filter=lfs diff=lfs merge=lfs -text
56
+ assets/img/ntt_1_4.png filter=lfs diff=lfs merge=lfs -text
57
+ assets/img/ntt_1.png filter=lfs diff=lfs merge=lfs -text
58
+ assets/img/ntt_2.png filter=lfs diff=lfs merge=lfs -text
59
+ assets/img/ntt_3.png filter=lfs diff=lfs merge=lfs -text
60
+ assets/img/ntt_4.png filter=lfs diff=lfs merge=lfs -text
61
+ assets/img/ntt_5.png filter=lfs diff=lfs merge=lfs -text
62
+ assets/img/ntt_6.png filter=lfs diff=lfs merge=lfs -text
63
+ assets/img/s_1.png filter=lfs diff=lfs merge=lfs -text
64
+ assets/img/s_2.png filter=lfs diff=lfs merge=lfs -text
65
+ assets/img/s_3.png filter=lfs diff=lfs merge=lfs -text
66
+ assets/img/s_4.png filter=lfs diff=lfs merge=lfs -text
67
+ assets/img/s_5.png filter=lfs diff=lfs merge=lfs -text
68
+ assets/img/s_6.png filter=lfs diff=lfs merge=lfs -text
assets/css/styles.css CHANGED
@@ -1157,42 +1157,690 @@ body.dark-theme {
1157
  }
1158
 
1159
  /* ==================== PRODUCT DETAIL ==================== */
1160
- .product__detail {
1161
- flex: 1;
1162
- padding: 20px;
1163
- margin-top: 2rem;
1164
  }
1165
 
1166
- .product__img img {
1167
- max-width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1168
  height: auto;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1169
  border-radius: 8px;
1170
- box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1171
  }
1172
 
1173
- .detail {
 
 
 
 
 
 
 
 
1174
  display: flex;
1175
- gap: 20px;
1176
  align-items: center;
 
 
1177
  flex-wrap: wrap;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1178
  justify-content: center;
 
 
 
 
 
 
1179
  }
1180
 
1181
- .product__title {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1182
  text-align: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1183
  width: 100%;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1184
  }
1185
 
1186
- .product_info {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1187
  justify-content: center;
1188
  }
1189
 
1190
- @media (max-width: 768px) {
1191
- .detail {
1192
- flex-direction: column;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1193
  }
 
1194
 
1195
- .product__title {
1196
- text-align: center;
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1197
  }
1198
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1157
  }
1158
 
1159
  /* ==================== PRODUCT DETAIL ==================== */
1160
+ .product-detail {
1161
+ padding-top: 8rem;
1162
+ padding-bottom: 4rem;
 
1163
  }
1164
 
1165
+ .product-detail__header {
1166
+ text-align: center;
1167
+ margin-bottom: 3rem;
1168
+ }
1169
+
1170
+ .product-detail__title {
1171
+ font-size: var(--h1-font-size);
1172
+ color: var(--title-color);
1173
+ margin-bottom: 1rem;
1174
+ line-height: 1.3;
1175
+ }
1176
+
1177
+ .product-detail__breadcrumb {
1178
+ font-size: var(--small-font-size);
1179
+ color: var(--text-color);
1180
+ }
1181
+
1182
+ .product-detail__breadcrumb a {
1183
+ color: var(--first-color);
1184
+ text-decoration: none;
1185
+ }
1186
+
1187
+ .product-detail__breadcrumb a:hover {
1188
+ text-decoration: underline;
1189
+ }
1190
+
1191
+ .product-detail__breadcrumb span {
1192
+ margin: 0 0.5rem;
1193
+ color: var(--text-color);
1194
+ }
1195
+
1196
+ /* Product Content Layout */
1197
+ .product-detail__content {
1198
+ display: grid;
1199
+ grid-template-columns: 1fr 1.2fr;
1200
+ gap: 3rem;
1201
+ margin-bottom: 4rem;
1202
+ align-items: start;
1203
+ }
1204
+
1205
+ /* Product Image Section */
1206
+ .product-detail__image {
1207
+ position: sticky;
1208
+ top: 2rem;
1209
+ }
1210
+
1211
+ .product-detail__image-main {
1212
+ background-color: white;
1213
+ border: 2px solid var(--border-color);
1214
+ border-radius: 15px;
1215
+ padding: 2rem;
1216
+ margin-bottom: 1rem;
1217
+ text-align: center;
1218
+ }
1219
+
1220
+ .product-detail__image-main img {
1221
+ width: 100%;
1222
+ max-width: 350px;
1223
  height: auto;
1224
+ object-fit: contain;
1225
+ }
1226
+
1227
+ .product-detail__image-gallery {
1228
+ display: flex;
1229
+ gap: 0.5rem;
1230
+ justify-content: center;
1231
+ flex-wrap: wrap;
1232
+ }
1233
+
1234
+ .gallery-thumb {
1235
+ width: 70px;
1236
+ height: 70px;
1237
+ object-fit: cover;
1238
+ border: 2px solid var(--border-color);
1239
  border-radius: 8px;
1240
+ cursor: pointer;
1241
+ opacity: 0.7;
1242
+ transition: all 0.3s ease;
1243
+ }
1244
+
1245
+ .gallery-thumb:hover,
1246
+ .gallery-thumb.active {
1247
+ opacity: 1;
1248
+ border-color: var(--first-color);
1249
+ }
1250
+
1251
+ /* Product Info Section */
1252
+ .product-detail__info {
1253
+ padding: 1rem 0;
1254
+ }
1255
+
1256
+ .product-detail__brand {
1257
+ display: flex;
1258
+ align-items: center;
1259
+ gap: 1rem;
1260
+ margin-bottom: 1rem;
1261
+ }
1262
+
1263
+ .brand-tag {
1264
+ background-color: var(--first-color);
1265
+ color: var(--white-color);
1266
+ padding: 0.25rem 0.75rem;
1267
+ border-radius: 20px;
1268
+ font-size: var(--small-font-size);
1269
+ font-weight: var(--font-medium);
1270
+ }
1271
+
1272
+ .product-code {
1273
+ font-size: var(--small-font-size);
1274
+ color: var(--text-color);
1275
+ }
1276
+
1277
+ .product-detail__name {
1278
+ font-size: var(--h2-font-size);
1279
+ color: var(--title-color);
1280
+ margin-bottom: 1rem;
1281
+ line-height: 1.3;
1282
+ }
1283
+
1284
+ .product-detail__rating {
1285
+ display: flex;
1286
+ align-items: center;
1287
+ gap: 1rem;
1288
+ margin-bottom: 1.5rem;
1289
+ }
1290
+
1291
+ .rating-stars {
1292
+ color: var(--first-color);
1293
+ font-size: 1.1rem;
1294
+ }
1295
+
1296
+ .rating-text {
1297
+ font-size: var(--small-font-size);
1298
+ color: var(--text-color);
1299
+ }
1300
+
1301
+ .product-detail__price {
1302
+ display: flex;
1303
+ align-items: center;
1304
+ gap: 1rem;
1305
+ margin-bottom: 2rem;
1306
+ }
1307
+
1308
+ .price-current {
1309
+ font-size: 1.75rem;
1310
+ font-weight: var(--font-semi-bold);
1311
+ color: var(--first-color);
1312
+ }
1313
+
1314
+ .price-original {
1315
+ font-size: var(--normal-font-size);
1316
+ color: var(--text-color);
1317
+ text-decoration: line-through;
1318
+ }
1319
+
1320
+ .price-discount {
1321
+ background-color: #ff4757;
1322
+ color: white;
1323
+ padding: 0.25rem 0.5rem;
1324
+ border-radius: 4px;
1325
+ font-size: var(--small-font-size);
1326
+ font-weight: var(--font-medium);
1327
+ }
1328
+
1329
+ .product-detail__description {
1330
+ margin-bottom: 2rem;
1331
+ padding: 1.5rem;
1332
+ background-color: var(--container-color);
1333
+ border-radius: 10px;
1334
+ border: 1px solid var(--border-color);
1335
+ }
1336
+
1337
+ .product-detail__description h3 {
1338
+ margin-bottom: 1rem;
1339
+ color: var(--title-color);
1340
+ font-size: var(--h3-font-size);
1341
+ }
1342
+
1343
+ .product-detail__description ul {
1344
+ list-style: none;
1345
+ padding: 0;
1346
+ }
1347
+
1348
+ .product-detail__description li {
1349
+ padding: 0.5rem 0;
1350
+ border-bottom: 1px solid var(--border-color);
1351
+ position: relative;
1352
+ padding-left: 1.5rem;
1353
+ }
1354
+
1355
+ .product-detail__description li:last-child {
1356
+ border-bottom: none;
1357
  }
1358
 
1359
+ .product-detail__description li::before {
1360
+ content: "✓";
1361
+ position: absolute;
1362
+ left: 0;
1363
+ color: var(--first-color);
1364
+ font-weight: bold;
1365
+ }
1366
+
1367
+ .product-detail__quantity {
1368
  display: flex;
 
1369
  align-items: center;
1370
+ gap: 1rem;
1371
+ margin-bottom: 2rem;
1372
  flex-wrap: wrap;
1373
+ }
1374
+
1375
+ .quantity-label {
1376
+ font-weight: var(--font-medium);
1377
+ color: var(--title-color);
1378
+ }
1379
+
1380
+ .quantity-controls {
1381
+ display: flex;
1382
+ align-items: center;
1383
+ border: 2px solid var(--border-color);
1384
+ border-radius: 8px;
1385
+ overflow: hidden;
1386
+ }
1387
+
1388
+ .qty-btn {
1389
+ background-color: var(--container-color);
1390
+ border: none;
1391
+ padding: 0.75rem 1rem;
1392
+ cursor: pointer;
1393
+ font-size: 1.2rem;
1394
+ color: var(--title-color);
1395
+ transition: background-color 0.3s;
1396
+ }
1397
+
1398
+ .qty-btn:hover {
1399
+ background-color: var(--first-color);
1400
+ color: var(--white-color);
1401
+ }
1402
+
1403
+ .qty-input {
1404
+ border: none;
1405
+ padding: 0.75rem;
1406
+ width: 60px;
1407
+ text-align: center;
1408
+ font-size: var(--normal-font-size);
1409
+ background-color: var(--body-color);
1410
+ color: var(--title-color);
1411
+ }
1412
+
1413
+ .stock-info {
1414
+ color: #27ae60;
1415
+ font-size: var(--small-font-size);
1416
+ font-weight: var(--font-medium);
1417
+ }
1418
+
1419
+ .product-detail__actions {
1420
+ display: flex;
1421
+ gap: 1rem;
1422
+ margin-bottom: 2rem;
1423
+ flex-wrap: wrap;
1424
+ }
1425
+
1426
+ .btn-add-cart {
1427
+ flex: 1;
1428
+ min-width: 200px;
1429
+ display: flex;
1430
+ align-items: center;
1431
  justify-content: center;
1432
+ gap: 0.5rem;
1433
+ }
1434
+
1435
+ .btn-buy-now {
1436
+ flex: 1;
1437
+ min-width: 150px;
1438
  }
1439
 
1440
+ .button--secondary {
1441
+ background-color: transparent;
1442
+ border: 2px solid var(--first-color);
1443
+ color: var(--first-color);
1444
+ }
1445
+
1446
+ .button--secondary:hover {
1447
+ background-color: var(--first-color);
1448
+ color: var(--white-color);
1449
+ }
1450
+
1451
+ .btn-wishlist {
1452
+ width: 50px;
1453
+ height: 50px;
1454
+ border: 2px solid var(--border-color);
1455
+ background-color: var(--container-color);
1456
+ border-radius: 8px;
1457
+ display: flex;
1458
+ align-items: center;
1459
+ justify-content: center;
1460
+ cursor: pointer;
1461
+ color: var(--text-color);
1462
+ transition: all 0.3s ease;
1463
+ }
1464
+
1465
+ .btn-wishlist:hover {
1466
+ border-color: var(--first-color);
1467
+ color: var(--first-color);
1468
+ }
1469
+
1470
+ .product-detail__features {
1471
+ display: flex;
1472
+ flex-direction: column;
1473
+ gap: 1rem;
1474
+ padding: 1.5rem;
1475
+ background-color: var(--container-color);
1476
+ border-radius: 10px;
1477
+ border: 1px solid var(--border-color);
1478
+ }
1479
+
1480
+ .feature-item {
1481
+ display: flex;
1482
+ align-items: center;
1483
+ gap: 0.75rem;
1484
+ }
1485
+
1486
+ .feature-item i {
1487
+ color: var(--first-color);
1488
+ font-size: 1.25rem;
1489
+ }
1490
+
1491
+ .feature-item span {
1492
+ font-size: var(--small-font-size);
1493
+ color: var(--text-color);
1494
+ }
1495
+
1496
+ /* Product Specifications */
1497
+ .product-detail__specs {
1498
+ background-color: var(--container-color);
1499
+ padding: 2rem;
1500
+ border-radius: 15px;
1501
+ border: 2px solid var(--border-color);
1502
+ }
1503
+
1504
+ .specs-title {
1505
+ font-size: var(--h2-font-size);
1506
+ color: var(--title-color);
1507
+ margin-bottom: 1.5rem;
1508
  text-align: center;
1509
+ }
1510
+
1511
+ .specs-grid {
1512
+ display: grid;
1513
+ grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
1514
+ gap: 1rem;
1515
+ }
1516
+
1517
+ .spec-item {
1518
+ display: flex;
1519
+ justify-content: space-between;
1520
+ padding: 1rem;
1521
+ background-color: var(--body-color);
1522
+ border-radius: 8px;
1523
+ border: 1px solid var(--border-color);
1524
+ }
1525
+
1526
+ .spec-label {
1527
+ font-weight: var(--font-medium);
1528
+ color: var(--title-color);
1529
+ }
1530
+
1531
+ .spec-value {
1532
+ color: var(--text-color);
1533
+ text-align: right;
1534
+ }
1535
+
1536
+ /* Responsive Design */
1537
+ @media screen and (max-width: 1024px) {
1538
+ .product-detail__content {
1539
+ grid-template-columns: 1fr;
1540
+ gap: 2rem;
1541
+ }
1542
+
1543
+ .product-detail__image {
1544
+ position: static;
1545
+ order: 1;
1546
+ }
1547
+
1548
+ .product-detail__info {
1549
+ order: 2;
1550
+ }
1551
+ }
1552
+
1553
+ @media screen and (max-width: 768px) {
1554
+ .product-detail {
1555
+ padding-top: 6rem;
1556
+ }
1557
+
1558
+ .product-detail__title {
1559
+ font-size: var(--h2-font-size);
1560
+ }
1561
+
1562
+ .product-detail__image-main {
1563
+ padding: 1rem;
1564
+ }
1565
+
1566
+ .product-detail__image-main img {
1567
+ max-width: 250px;
1568
+ }
1569
+
1570
+ .product-detail__actions {
1571
+ flex-direction: column;
1572
+ }
1573
+
1574
+ .btn-add-cart,
1575
+ .btn-buy-now {
1576
+ min-width: 100%;
1577
+ }
1578
+
1579
+ .specs-grid {
1580
+ grid-template-columns: 1fr;
1581
+ }
1582
+
1583
+ .spec-item {
1584
+ flex-direction: column;
1585
+ gap: 0.5rem;
1586
+ }
1587
+
1588
+ .spec-value {
1589
+ text-align: left;
1590
+ }
1591
+ }
1592
+
1593
+ @media screen and (max-width: 480px) {
1594
+ .product-detail__quantity {
1595
+ flex-direction: column;
1596
+ align-items: flex-start;
1597
+ }
1598
+
1599
+ .product-detail__price {
1600
+ flex-direction: column;
1601
+ align-items: flex-start;
1602
+ gap: 0.5rem;
1603
+ }
1604
+
1605
+ .gallery-thumb {
1606
+ width: 60px;
1607
+ height: 60px;
1608
+ }
1609
+ }
1610
+
1611
+ /*=============== LOGIN MESSAGE ===============*/
1612
+ .login__message {
1613
+ padding: 0.75rem 1rem;
1614
+ margin: 1rem 0;
1615
+ border-radius: 5px;
1616
+ font-size: var(--small-font-size);
1617
+ text-align: center;
1618
+ font-weight: var(--font-medium);
1619
+ transition: all 0.3s ease;
1620
+ }
1621
+
1622
+ .login__message--success {
1623
+ background-color: #d4edda;
1624
+ color: #155724;
1625
+ border: 1px solid #c3e6cb;
1626
+ }
1627
+
1628
+ .login__message--error {
1629
+ background-color: #f8d7da;
1630
+ color: #721c24;
1631
+ border: 1px solid #f5c6cb;
1632
+ }
1633
+
1634
+ /* Dark theme cho message */
1635
+ .dark-theme .login__message--success {
1636
+ background-color: #1e4620;
1637
+ color: #75b798;
1638
+ border: 1px solid #2d5a31;
1639
+ }
1640
+
1641
+ .dark-theme .login__message--error {
1642
+ background-color: #4a1e1e;
1643
+ color: #f1aeb5;
1644
+ border: 1px solid #5a2d2d;
1645
+ }
1646
+
1647
+ /*=============== USER MENU ===============*/
1648
+ .user-menu {
1649
+ position: fixed;
1650
+ top: -100%;
1651
+ left: 0;
1652
  width: 100%;
1653
+ height: 100%;
1654
+ z-index: var(--z-fixed);
1655
+ background-color: hsla(230, 62%, 96%, 0.6);
1656
+ backdrop-filter: blur(16px);
1657
+ align-items: center;
1658
+ padding: 1.5rem;
1659
+ text-align: center;
1660
+ transition: top 0.4s;
1661
+ }
1662
+
1663
+ .user-menu__container {
1664
+ background-color: var(--container-color);
1665
+ padding: 2rem 1.5rem;
1666
+ border: 2px solid var(--border-color);
1667
+ border-radius: 15px;
1668
+ width: 100%;
1669
+ max-width: 400px;
1670
+ margin: 0 auto;
1671
  }
1672
 
1673
+ .user-menu__header {
1674
+ display: flex;
1675
+ align-items: center;
1676
+ gap: 1rem;
1677
+ margin-bottom: 2rem;
1678
+ padding-bottom: 1.5rem;
1679
+ border-bottom: 1px solid var(--border-color);
1680
+ }
1681
+
1682
+ .user-menu__avatar {
1683
+ width: 60px;
1684
+ height: 60px;
1685
+ background-color: var(--first-color);
1686
+ border-radius: 50%;
1687
+ display: flex;
1688
+ align-items: center;
1689
  justify-content: center;
1690
  }
1691
 
1692
+ .user-menu__avatar i {
1693
+ font-size: 2rem;
1694
+ color: var(--white-color);
1695
+ }
1696
+
1697
+ .user-menu__info {
1698
+ text-align: left;
1699
+ flex: 1;
1700
+ }
1701
+
1702
+ .user-menu__name {
1703
+ font-size: var(--h3-font-size);
1704
+ color: var(--title-color);
1705
+ margin-bottom: 0.25rem;
1706
+ font-weight: var(--font-medium);
1707
+ }
1708
+
1709
+ .user-menu__email {
1710
+ font-size: var(--small-font-size);
1711
+ color: var(--text-color);
1712
+ margin: 0;
1713
+ }
1714
+
1715
+ .user-menu__actions {
1716
+ display: flex;
1717
+ flex-direction: column;
1718
+ gap: 0.75rem;
1719
+ }
1720
+
1721
+ .user-menu__button {
1722
+ display: flex;
1723
+ align-items: center;
1724
+ gap: 0.75rem;
1725
+ width: 100%;
1726
+ padding: 0.75rem 1rem;
1727
+ background-color: transparent;
1728
+ border: 1px solid var(--border-color);
1729
+ border-radius: 8px;
1730
+ color: var(--text-color);
1731
+ font-size: var(--normal-font-size);
1732
+ cursor: pointer;
1733
+ transition: all 0.3s ease;
1734
+ text-align: left;
1735
+ }
1736
+
1737
+ .user-menu__button:hover {
1738
+ background-color: var(--first-color);
1739
+ color: var(--white-color);
1740
+ border-color: var(--first-color);
1741
+ }
1742
+
1743
+ .user-menu__button--logout {
1744
+ margin-top: 0.5rem;
1745
+ border-color: #dc3545;
1746
+ color: #dc3545;
1747
+ }
1748
+
1749
+ .user-menu__button--logout:hover {
1750
+ background-color: #dc3545;
1751
+ color: var(--white-color);
1752
+ border-color: #dc3545;
1753
+ }
1754
+
1755
+ .user-menu__button i {
1756
+ font-size: 1.25rem;
1757
+ }
1758
+
1759
+ .user-menu__close {
1760
+ position: absolute;
1761
+ top: 2rem;
1762
+ right: 2rem;
1763
+ font-size: 2rem;
1764
+ color: var(--title-color);
1765
+ cursor: pointer;
1766
+ }
1767
+
1768
+ /* Show user menu */
1769
+ .show-user-menu {
1770
+ top: 0;
1771
+ }
1772
+
1773
+ /* Dark theme cho user menu */
1774
+ .dark-theme .user-menu {
1775
+ background-color: hsla(230, 12%, 8%, 0.6);
1776
+ }
1777
+
1778
+ /* Responsive */
1779
+ @media screen and (min-width: 576px) {
1780
+ .user-menu__close {
1781
+ width: max-content;
1782
+ top: 4rem;
1783
+ left: 0;
1784
+ right: 0;
1785
+ margin-inline: auto;
1786
  }
1787
+ }
1788
 
1789
+ /*=============== LOGOUT MESSAGE ===============*/
1790
+ .logout-message {
1791
+ position: fixed;
1792
+ top: 2rem;
1793
+ right: 2rem;
1794
+ z-index: 1000;
1795
+ transform: translateX(100%);
1796
+ transition: transform 0.3s ease;
1797
+ }
1798
+
1799
+ .logout-message.show {
1800
+ transform: translateX(0);
1801
+ }
1802
+
1803
+ .logout-message__content {
1804
+ background-color: #28a745;
1805
+ color: white;
1806
+ padding: 1rem 1.5rem;
1807
+ border-radius: 8px;
1808
+ display: flex;
1809
+ align-items: center;
1810
+ gap: 0.5rem;
1811
+ box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
1812
+ font-weight: var(--font-medium);
1813
+ }
1814
+
1815
+ .logout-message__content i {
1816
+ font-size: 1.25rem;
1817
+ }
1818
+
1819
+ /* Dark theme */
1820
+ .dark-theme .logout-message__content {
1821
+ background-color: #20c997;
1822
+ }
1823
+
1824
+ /* Mobile responsive */
1825
+ @media screen and (max-width: 768px) {
1826
+ .logout-message {
1827
+ top: 1rem;
1828
+ right: 1rem;
1829
+ left: 1rem;
1830
+ right: 1rem;
1831
  }
1832
  }
1833
+
1834
+ /*=============== LOGIN BUTTON STATES ===============*/
1835
+ .nav__actions i.logged-in {
1836
+ color: var(--first-color);
1837
+ background-color: var(--container-color);
1838
+ padding: 0.5rem;
1839
+ border-radius: 50%;
1840
+ border: 2px solid var(--first-color);
1841
+ }
1842
+
1843
+ .nav__actions i.logged-in:hover {
1844
+ background-color: var(--first-color);
1845
+ color: var(--white-color);
1846
+ }
assets/img/kn_1.png ADDED

Git LFS Details

  • SHA256: 3b4c9382c083328aa066266d74a4b181f3f4f006cdc91417b94a376e3b72d705
  • Pointer size: 131 Bytes
  • Size of remote file: 139 kB
assets/img/kn_2.png ADDED

Git LFS Details

  • SHA256: 78f04bc2387ed9c41d664aa1bc4e49f97fa7fc51a8b728c2c266485c183eba40
  • Pointer size: 131 Bytes
  • Size of remote file: 162 kB
assets/img/kn_3.png ADDED

Git LFS Details

  • SHA256: 4dbbfe4e63469d383a50c4f495a0654118c54090bcdea0f3c314b7b66dc37bcf
  • Pointer size: 131 Bytes
  • Size of remote file: 215 kB
assets/img/kn_4.png ADDED

Git LFS Details

  • SHA256: 57dad234e20ed1b87d3ada1bee3e11ed55e50942060d61ff30a6aef3f9f09df4
  • Pointer size: 131 Bytes
  • Size of remote file: 125 kB
assets/img/kn_5.png ADDED

Git LFS Details

  • SHA256: 16758b20c9fa15632b0f3bd1bba94efd189109998cc36cb7e6036e6cb1ce0480
  • Pointer size: 131 Bytes
  • Size of remote file: 212 kB
assets/img/kn_6.png ADDED

Git LFS Details

  • SHA256: 52351688c47d86c3c83039973b4601bfb6942fb68ee078c86fae8328a995054b
  • Pointer size: 131 Bytes
  • Size of remote file: 211 kB
assets/img/ntt_1.png ADDED

Git LFS Details

  • SHA256: 3d749687f2909f8160365614786aec8fbbc91192b2e40074d804bfe11a2436ea
  • Pointer size: 131 Bytes
  • Size of remote file: 189 kB
assets/img/ntt_1_1.png ADDED
assets/img/ntt_1_2.png ADDED

Git LFS Details

  • SHA256: b7ae1ac4ac80a9aae0841b716ab00c0e8cf3a87c88a62cadc1d6eed7503f9c80
  • Pointer size: 131 Bytes
  • Size of remote file: 206 kB
assets/img/ntt_1_3.png ADDED
assets/img/ntt_1_4.png ADDED

Git LFS Details

  • SHA256: 5de74472754201be084e878cde2cd17d13bca703ed69199e5f1b374f27362e5b
  • Pointer size: 131 Bytes
  • Size of remote file: 276 kB
assets/img/ntt_2.png ADDED

Git LFS Details

  • SHA256: b22069ee85bfa53eb7191cf5e4bfc82998dc1e534a8238f58f6d2d4ed733bc6e
  • Pointer size: 131 Bytes
  • Size of remote file: 337 kB
assets/img/ntt_3.png ADDED

Git LFS Details

  • SHA256: 3bb39c1c5d19c4ee9a2dace4017aa6cbda2207f236bd33770e29a02785033a4b
  • Pointer size: 131 Bytes
  • Size of remote file: 226 kB
assets/img/ntt_4.png ADDED

Git LFS Details

  • SHA256: bba84214d79784a85cdc4e9d3bd47f9d2af33c398ace9763f740f2987e4a204b
  • Pointer size: 131 Bytes
  • Size of remote file: 221 kB
assets/img/ntt_5.png ADDED

Git LFS Details

  • SHA256: 7c89b5ce2f4ad2daf72a9813ef02792a771c0428f2b4d0a355f4c91fa1a70f22
  • Pointer size: 131 Bytes
  • Size of remote file: 306 kB
assets/img/ntt_6.png ADDED

Git LFS Details

  • SHA256: a1ce7fd6ad81ad5d78448013dc6d679dcbd01647e089d6c262a21f81cc09b8a0
  • Pointer size: 131 Bytes
  • Size of remote file: 268 kB
assets/img/s_1.png ADDED

Git LFS Details

  • SHA256: 56da4e157339e71a71b5f973251863019f734c8638aaa2ab178d7bf3e03aa60c
  • Pointer size: 131 Bytes
  • Size of remote file: 163 kB
assets/img/s_2.png ADDED

Git LFS Details

  • SHA256: 86771acda12f3b11902892140ff47eb91f6c6fc454ba07d9a688644c7908be94
  • Pointer size: 131 Bytes
  • Size of remote file: 157 kB
assets/img/s_3.png ADDED

Git LFS Details

  • SHA256: 21cb502b2855fcdd0001a42f12f0b35a2dc03dde108765a7125f228854bddd9f
  • Pointer size: 131 Bytes
  • Size of remote file: 240 kB
assets/img/s_4.png ADDED

Git LFS Details

  • SHA256: 0300f961c29656de6580506fd8164e3227dd17ab2f81445f327c9f172c6966c6
  • Pointer size: 131 Bytes
  • Size of remote file: 326 kB
assets/img/s_5.png ADDED

Git LFS Details

  • SHA256: 1d12a3b85cdc14d87675f9f54f6368273544dbc5d65d865efcab28c841b0fdf9
  • Pointer size: 131 Bytes
  • Size of remote file: 147 kB
assets/img/s_6.png ADDED

Git LFS Details

  • SHA256: a089e3086131cbbf2a3c30adaaeca6e8d9fa0cb706307ca1233138752ac9e097
  • Pointer size: 131 Bytes
  • Size of remote file: 183 kB
assets/img/vn-11134207-7ra0g-ma77yr40a8ohcc.webp ADDED
assets/js/main.js CHANGED
@@ -41,26 +41,195 @@ if (bagClose) {
41
  }
42
 
43
  /*=============== LOGIN ===============*/
 
44
  const loginButton = document.getElementById("login-button"),
45
  loginClose = document.getElementById("login-close"),
46
- loginContent = document.getElementById("login-content");
 
 
47
 
48
- /*===== LOGIN SHOW =====*/
49
- /* Validate if constant exists */
50
  if (loginButton) {
51
  loginButton.addEventListener("click", () => {
52
- loginContent.classList.add("show-login");
 
 
 
 
 
 
 
 
 
53
  });
54
  }
55
 
56
- /*===== LOGIN HIDDEN =====*/
57
- /* Validate if constant exists */
58
  if (loginClose) {
59
  loginClose.addEventListener("click", () => {
60
  loginContent.classList.remove("show-login");
61
  });
62
  }
63
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
64
  /*=============== ADD SHADOW HEADER ===============*/
65
  const shadowHeader = () => {
66
  const header = document.getElementById("header");
@@ -417,3 +586,220 @@ function checkoutHandler() {
417
  function resetCart() {
418
  localStorage.removeItem("cartItems");
419
  }
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
41
  }
42
 
43
  /*=============== LOGIN ===============*/
44
+ /*=============== LOGIN & USER MENU ===============*/
45
  const loginButton = document.getElementById("login-button"),
46
  loginClose = document.getElementById("login-close"),
47
+ loginContent = document.getElementById("login-content"),
48
+ userMenuClose = document.getElementById("user-menu-close"),
49
+ userMenuContent = document.getElementById("user-menu-content");
50
 
51
+ /*===== HANDLE LOGIN BUTTON CLICK =====*/
 
52
  if (loginButton) {
53
  loginButton.addEventListener("click", () => {
54
+ // Kiểm tra trạng thái đăng nhập
55
+ const isLoggedIn = localStorage.getItem("isLoggedIn") === "true";
56
+
57
+ if (isLoggedIn) {
58
+ // Đã đăng nhập -> hiển thị user menu
59
+ showUserMenu();
60
+ } else {
61
+ // Chưa đăng nhập -> hiển thị form đăng nhập
62
+ loginContent.classList.add("show-login");
63
+ }
64
  });
65
  }
66
 
67
+ /*===== LOGIN FORM HIDDEN =====*/
 
68
  if (loginClose) {
69
  loginClose.addEventListener("click", () => {
70
  loginContent.classList.remove("show-login");
71
  });
72
  }
73
 
74
+ /*===== USER MENU HIDDEN =====*/
75
+ if (userMenuClose) {
76
+ userMenuClose.addEventListener("click", () => {
77
+ userMenuContent.classList.remove("show-user-menu");
78
+ });
79
+ }
80
+
81
+ /*=============== LOGIN FORM HANDLER ===============*/
82
+ document.addEventListener("DOMContentLoaded", function () {
83
+ const loginForm = document.querySelector(".login__form");
84
+
85
+ if (loginForm) {
86
+ loginForm.addEventListener("submit", handleLogin);
87
+ }
88
+ });
89
+
90
+ function handleLogin(event) {
91
+ // Ngăn form submit mặc định (reload trang)
92
+ event.preventDefault();
93
+
94
+ // Lấy giá trị từ input
95
+ const emailInput = document.getElementById("login-email");
96
+ const passwordInput = document.getElementById("login-pass");
97
+
98
+ const email = emailInput.value.trim();
99
+ const password = passwordInput.value.trim();
100
+
101
+ // Kiểm tra thông tin đăng nhập
102
+ validateLogin(email, password);
103
+ }
104
+
105
+ function validateLogin(email, password) {
106
+ // Thông tin đăng nhập đúng
107
+ const VALID_EMAIL = "dothulieu12@gmail.com";
108
+ const VALID_PASSWORD = "lieu123";
109
+
110
+ // Kiểm tra email và password có trống không
111
+ if (!email || !password) {
112
+ showLoginMessage("Vui lòng nhập đầy đủ email và mật khẩu!", "error");
113
+ return;
114
+ }
115
+
116
+ // Kiểm tra thông tin đăng nhập
117
+ if (email === VALID_EMAIL && password === VALID_PASSWORD) {
118
+ showLoginMessage(
119
+ "Đăng nhập thành công! Chào mừng bạn đến với ThuLieu Store!",
120
+ "success"
121
+ );
122
+ // Đóng modal sau khi đăng nhập thành công
123
+ setTimeout(() => {
124
+ closeLoginModal();
125
+ clearLoginForm();
126
+ }, 2000);
127
+ } else {
128
+ showLoginMessage(
129
+ "Email hoặc mật khẩu không đúng. Vui lòng thử lại!",
130
+ "error"
131
+ );
132
+ }
133
+ }
134
+
135
+ function showLoginMessage(message, type) {
136
+ // Tạo element thông báo
137
+ const messageDiv = document.createElement("div");
138
+ messageDiv.className = `login__message login__message--${type}`;
139
+ messageDiv.textContent = message;
140
+
141
+ // Tìm form để chèn thông báo
142
+ const loginForm = document.querySelector(".login__form");
143
+ const loginTitle = document.querySelector(".login__title");
144
+
145
+ // Xóa thông báo cũ nếu có
146
+ const existingMessage = loginForm.querySelector(".login__message");
147
+ if (existingMessage) {
148
+ existingMessage.remove();
149
+ }
150
+
151
+ // Chèn thông báo sau title
152
+ loginTitle.insertAdjacentElement("afterend", messageDiv);
153
+
154
+ // Tự động ẩn thông báo sau 5 giây
155
+ setTimeout(() => {
156
+ if (messageDiv.parentNode) {
157
+ messageDiv.remove();
158
+ }
159
+ }, 5000);
160
+ }
161
+
162
+ function closeLoginModal() {
163
+ const loginContent = document.getElementById("login-content");
164
+ if (loginContent) {
165
+ loginContent.classList.remove("show-login");
166
+ }
167
+ }
168
+
169
+ function clearLoginForm() {
170
+ const emailInput = document.getElementById("login-email");
171
+ const passwordInput = document.getElementById("login-pass");
172
+
173
+ if (emailInput) emailInput.value = "";
174
+ if (passwordInput) passwordInput.value = "";
175
+
176
+ // Xóa thông báo
177
+ const messageDiv = document.querySelector(".login__message");
178
+ if (messageDiv) {
179
+ messageDiv.remove();
180
+ }
181
+ }
182
+
183
+ function validateLogin(email, password) {
184
+ const VALID_EMAIL = "dothulieu12@gmail.com";
185
+ const VALID_PASSWORD = "lieu123";
186
+
187
+ // Hiển thị loading
188
+ showLoginMessage("Đang xử lý...", "loading");
189
+
190
+ // Giả lập thời gian xử lý
191
+ setTimeout(() => {
192
+ if (!email || !password) {
193
+ showLoginMessage("Vui lòng nhập đầy đủ email và mật khẩu!", "error");
194
+ return;
195
+ }
196
+
197
+ if (email === VALID_EMAIL && password === VALID_PASSWORD) {
198
+ // Lưu trạng thái đăng nhập
199
+ localStorage.setItem("isLoggedIn", "true");
200
+ localStorage.setItem("userEmail", email);
201
+
202
+ showLoginMessage(
203
+ "Đăng nhập thành công! Chào mừng bạn đến với ThuLieu Store!",
204
+ "success"
205
+ );
206
+ setTimeout(() => {
207
+ closeLoginModal();
208
+ clearLoginForm();
209
+ updateUIAfterLogin();
210
+ }, 2000);
211
+ } else {
212
+ showLoginMessage(
213
+ "Email hoặc mật khẩu không đúng. Vui lòng thử lại!",
214
+ "error"
215
+ );
216
+ }
217
+ }, 1000);
218
+ }
219
+
220
+ function updateUIAfterLogin() {
221
+ // Thay đổi icon đăng nhập thành icon user đã đăng nhập
222
+ const loginButton = document.getElementById("login-button");
223
+ if (loginButton) {
224
+ loginButton.classList.remove("ri-user-line");
225
+ loginButton.classList.add("ri-user-3-fill");
226
+ loginButton.title = "Thông tin tài khoản";
227
+
228
+ // Thêm class để đánh dấu đã đăng nhập
229
+ loginButton.classList.add("logged-in");
230
+ }
231
+ }
232
+
233
  /*=============== ADD SHADOW HEADER ===============*/
234
  const shadowHeader = () => {
235
  const header = document.getElementById("header");
 
586
  function resetCart() {
587
  localStorage.removeItem("cartItems");
588
  }
589
+
590
+ /*=============== USER MENU FUNCTIONS ===============*/
591
+ function showUserMenu() {
592
+ // Cập nhật thông tin user
593
+ updateUserMenuInfo();
594
+
595
+ // Hiển thị menu
596
+ userMenuContent.classList.add("show-user-menu");
597
+ }
598
+
599
+ function updateUserMenuInfo() {
600
+ const userEmail = localStorage.getItem("userEmail") || "email@example.com";
601
+ const userName = extractNameFromEmail(userEmail);
602
+
603
+ // Cập nhật tên và email
604
+ const userNameElement = document.getElementById("user-name");
605
+ const userEmailElement = document.getElementById("user-email");
606
+
607
+ if (userNameElement) {
608
+ userNameElement.textContent = userName;
609
+ }
610
+
611
+ if (userEmailElement) {
612
+ userEmailElement.textContent = userEmail;
613
+ }
614
+ }
615
+
616
+ function extractNameFromEmail(email) {
617
+ // Lấy phần trước @ và format thành tên
618
+ const name = email.split("@")[0];
619
+
620
+ // Xử lý các trường hợp đặc biệt
621
+ if (name === "dothulieu12") {
622
+ return "Thu Liêu";
623
+ }
624
+
625
+ // Format tên từ email
626
+ return name.charAt(0).toUpperCase() + name.slice(1).replace(/[0-9]/g, "");
627
+ }
628
+
629
+ /*=============== LOGOUT FUNCTIONALITY ===============*/
630
+ document.addEventListener("DOMContentLoaded", function () {
631
+ // Kiểm tra trạng thái đăng nhập khi tải trang
632
+ checkLoginStatus();
633
+
634
+ // Xử lý sự kiện đăng xuất
635
+ const logoutButton = document.getElementById("logout-button");
636
+ if (logoutButton) {
637
+ logoutButton.addEventListener("click", handleLogout);
638
+ }
639
+
640
+ // Xử lý các nút khác trong user menu
641
+ const viewProfileButton = document.getElementById("view-profile");
642
+ const viewOrdersButton = document.getElementById("view-orders");
643
+
644
+ if (viewProfileButton) {
645
+ viewProfileButton.addEventListener("click", () => {
646
+ alert("Chức năng thông tin cá nhân đang được phát triển!");
647
+ });
648
+ }
649
+
650
+ if (viewOrdersButton) {
651
+ viewOrdersButton.addEventListener("click", () => {
652
+ alert("Chức năng đơn hàng đang được phát triển!");
653
+ });
654
+ }
655
+ });
656
+
657
+ function checkLoginStatus() {
658
+ const isLoggedIn = localStorage.getItem("isLoggedIn") === "true";
659
+
660
+ if (isLoggedIn) {
661
+ updateUIAfterLogin();
662
+ }
663
+ }
664
+
665
+ function handleLogout() {
666
+ // Hiển thị xác nhận đăng xuất
667
+ const confirmLogout = confirm("Bạn có chắc chắn muốn đăng xuất?");
668
+
669
+ if (confirmLogout) {
670
+ // Xóa thông tin đăng nhập
671
+ localStorage.removeItem("isLoggedIn");
672
+ localStorage.removeItem("userEmail");
673
+
674
+ // Đóng user menu
675
+ userMenuContent.classList.remove("show-user-menu");
676
+
677
+ // Cập nhật UI về trạng thái chưa đăng nhập
678
+ updateUIAfterLogout();
679
+
680
+ // Hiển thị thông báo
681
+ showLogoutMessage();
682
+ }
683
+ }
684
+
685
+ function updateUIAfterLogout() {
686
+ const loginButton = document.getElementById("login-button");
687
+ if (loginButton) {
688
+ loginButton.classList.remove("ri-user-3-fill", "logged-in");
689
+ loginButton.classList.add("ri-user-line");
690
+ loginButton.title = "Đăng nhập";
691
+ }
692
+ }
693
+
694
+ function showLogoutMessage() {
695
+ // Tạo thông báo đăng xuất
696
+ const messageDiv = document.createElement("div");
697
+ messageDiv.className = "logout-message";
698
+ messageDiv.innerHTML = `
699
+ <div class="logout-message__content">
700
+ <i class="ri-check-line"></i>
701
+ <span>Đăng xuất thành công!</span>
702
+ </div>
703
+ `;
704
+
705
+ document.body.appendChild(messageDiv);
706
+
707
+ // Hiển thị animation
708
+ setTimeout(() => {
709
+ messageDiv.classList.add("show");
710
+ }, 100);
711
+
712
+ // Tự động ẩn sau 3 giây
713
+ setTimeout(() => {
714
+ messageDiv.classList.remove("show");
715
+ setTimeout(() => {
716
+ if (messageDiv.parentNode) {
717
+ messageDiv.remove();
718
+ }
719
+ }, 300);
720
+ }, 3000);
721
+ }
722
+
723
+ /*=============== PRODUCT DETAIL FUNCTIONALITY ===============*/
724
+ document.addEventListener("DOMContentLoaded", function () {
725
+ // Gallery functionality
726
+ const galleryThumbs = document.querySelectorAll(".gallery-thumb");
727
+ const mainImage = document.querySelector(".product-detail__image-main img");
728
+
729
+ if (galleryThumbs.length > 0 && mainImage) {
730
+ galleryThumbs.forEach((thumb) => {
731
+ thumb.addEventListener("click", function () {
732
+ // Remove active class from all thumbnails
733
+ galleryThumbs.forEach((t) => t.classList.remove("active"));
734
+
735
+ // Add active class to clicked thumbnail
736
+ this.classList.add("active");
737
+
738
+ // Change main image
739
+ mainImage.src = this.src;
740
+ mainImage.alt = this.alt;
741
+ });
742
+ });
743
+ }
744
+
745
+ // Quantity controls
746
+ const qtyMinus = document.querySelector(".qty-minus");
747
+ const qtyPlus = document.querySelector(".qty-plus");
748
+ const qtyInput = document.querySelector(".qty-input");
749
+
750
+ if (qtyMinus && qtyPlus && qtyInput) {
751
+ qtyMinus.addEventListener("click", function () {
752
+ let currentValue = parseInt(qtyInput.value);
753
+ if (currentValue > 1) {
754
+ qtyInput.value = currentValue - 1;
755
+ }
756
+ });
757
+
758
+ qtyPlus.addEventListener("click", function () {
759
+ let currentValue = parseInt(qtyInput.value);
760
+ qtyInput.value = currentValue + 1;
761
+ });
762
+
763
+ qtyInput.addEventListener("change", function () {
764
+ if (this.value < 1) {
765
+ this.value = 1;
766
+ }
767
+ });
768
+ }
769
+
770
+ // Add to cart functionality
771
+ const addCartBtn = document.querySelector(".btn-add-cart");
772
+ const buyNowBtn = document.querySelector(".btn-buy-now");
773
+ const wishlistBtn = document.querySelector(".btn-wishlist");
774
+
775
+ if (addCartBtn) {
776
+ addCartBtn.addEventListener("click", function () {
777
+ const quantity = qtyInput ? qtyInput.value : 1;
778
+ alert(`Đã thêm ${quantity} sản phẩm vào giỏ hàng!`);
779
+ });
780
+ }
781
+
782
+ if (buyNowBtn) {
783
+ buyNowBtn.addEventListener("click", function () {
784
+ const quantity = qtyInput ? qtyInput.value : 1;
785
+ alert(`Mua ngay ${quantity} sản phẩm!`);
786
+ });
787
+ }
788
+
789
+ if (wishlistBtn) {
790
+ wishlistBtn.addEventListener("click", function () {
791
+ const icon = this.querySelector("i");
792
+ if (icon.classList.contains("ri-heart-line")) {
793
+ icon.classList.remove("ri-heart-line");
794
+ icon.classList.add("ri-heart-fill");
795
+ this.style.color = "var(--first-color)";
796
+ alert("Đã thêm vào danh sách yêu thích!");
797
+ } else {
798
+ icon.classList.remove("ri-heart-fill");
799
+ icon.classList.add("ri-heart-line");
800
+ this.style.color = "";
801
+ alert("Đã xóa khỏi danh sách yêu thích!");
802
+ }
803
+ });
804
+ }
805
+ });
index.html CHANGED
@@ -174,6 +174,40 @@
174
  <i class="ri-close-line login__close" id="login-close"></i>
175
  </div>
176
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  <!--==================== MAIN ====================-->
178
  <main class="main">
179
  <!--==================== HOME ====================-->
@@ -199,7 +233,7 @@
199
  <div class="swiper-wrapper">
200
  <article class="home__article swiper-slide">
201
  <img
202
- src="assets/img/home-book-1.png"
203
  alt="image"
204
  class="home__img"
205
  />
@@ -239,7 +273,7 @@
239
 
240
  <article class="home__article swiper-slide">
241
  <img
242
- src="assets/img/home-book-6.png"
243
  alt="image"
244
  class="home__img"
245
  />
@@ -247,7 +281,7 @@
247
 
248
  <article class="home__article swiper-slide">
249
  <img
250
- src="assets/img/home-book-7.png"
251
  alt="image"
252
  class="home__img"
253
  />
@@ -290,128 +324,24 @@
290
  <div class="swiper-wrapper">
291
  <article class="featured__card swiper-slide">
292
  <img
293
- src="assets/img/home-book-1.png"
294
- alt="image"
295
- class="featured__img"
296
- />
297
-
298
- <h2 class="featured__title">Sản phẩm X</h2>
299
- <div class="featured__prices">
300
- <span class="featured__discount" data-price="999999"
301
- >999.999 ₫</span
302
- >
303
- <span class="featured__price">1.111.111 ₫</span>
304
- </div>
305
-
306
- <button class="button">Thêm vào giỏ hàng</button>
307
-
308
- <div class="featured__actions">
309
- <!-- <button><i class="ri-search-line"></i></button> -->
310
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
311
- <button>
312
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
313
- </button>
314
- </div>
315
- </article>
316
-
317
- <article class="featured__card swiper-slide">
318
- <img
319
- src="assets/img/home-book-1.png"
320
- alt="image"
321
- class="featured__img"
322
- />
323
-
324
- <h2 class="featured__title">Sản phẩm X</h2>
325
- <div class="featured__prices">
326
- <span class="featured__discount" data-price="999999"
327
- >999.999 ₫</span
328
- >
329
- <span class="featured__price">1.111.111 ₫</span>
330
- </div>
331
-
332
- <button class="button">Thêm vào giỏ hàng</button>
333
-
334
- <div class="featured__actions">
335
- <!-- <button><i class="ri-search-line"></i></button> -->
336
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
337
- <button>
338
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
339
- </button>
340
- </div>
341
- </article>
342
-
343
- <article class="featured__card swiper-slide">
344
- <img
345
- src="assets/img/home-book-1.png"
346
- alt="image"
347
- class="featured__img"
348
- />
349
-
350
- <h2 class="featured__title">Sản phẩm X</h2>
351
- <div class="featured__prices">
352
- <span class="featured__discount" data-price="999999"
353
- >999.999 ₫</span
354
- >
355
- <span class="featured__price">1.111.111 ₫</span>
356
- </div>
357
-
358
- <button class="button">Thêm vào giỏ hàng</button>
359
-
360
- <div class="featured__actions">
361
- <!-- <button><i class="ri-search-line"></i></button> -->
362
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
363
- <button>
364
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
365
- </button>
366
- </div>
367
- </article>
368
-
369
- <article class="featured__card swiper-slide">
370
- <img
371
- src="assets/img/home-book-1.png"
372
- alt="image"
373
- class="featured__img"
374
- />
375
-
376
- <h2 class="featured__title">Sản phẩm X</h2>
377
- <div class="featured__prices">
378
- <span class="featured__discount" data-price="999999"
379
- >999.999 ₫</span
380
- >
381
- <span class="featured__price">1.111.111 ₫</span>
382
- </div>
383
-
384
- <button class="button">Thêm vào giỏ hàng</button>
385
-
386
- <div class="featured__actions">
387
- <!-- <button><i class="ri-search-line"></i></button> -->
388
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
389
- <button>
390
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
391
- </button>
392
- </div>
393
- </article>
394
-
395
- <article class="featured__card swiper-slide">
396
- <img
397
- src="assets/img/home-book-1.png"
398
  alt="image"
399
  class="featured__img"
400
  />
401
 
402
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
403
  <div class="featured__prices">
404
- <span class="featured__discount" data-price="999999"
405
- >999.999 ₫</span
406
  >
407
- <span class="featured__price">1.111.111 ₫</span>
408
  </div>
409
 
410
  <button class="button">Thêm vào giỏ hàng</button>
411
 
412
  <div class="featured__actions">
413
- <!-- <button><i class="ri-search-line"></i></button> -->
414
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
415
  <button>
416
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
417
  </button>
@@ -420,24 +350,24 @@
420
 
421
  <article class="featured__card swiper-slide">
422
  <img
423
- src="assets/img/home-book-1.png"
424
  alt="image"
425
  class="featured__img"
426
  />
427
 
428
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
429
  <div class="featured__prices">
430
- <span class="featured__discount" data-price="999999"
431
- >999.999 ₫</span
432
  >
433
- <span class="featured__price">1.111.111 ₫</span>
434
  </div>
435
 
436
  <button class="button">Thêm vào giỏ hàng</button>
437
 
438
  <div class="featured__actions">
439
- <!-- <button><i class="ri-search-line"></i></button> -->
440
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
441
  <button>
442
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
443
  </button>
@@ -446,24 +376,24 @@
446
 
447
  <article class="featured__card swiper-slide">
448
  <img
449
- src="assets/img/home-book-1.png"
450
  alt="image"
451
  class="featured__img"
452
  />
453
 
454
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
455
  <div class="featured__prices">
456
- <span class="featured__discount" data-price="999999"
457
- >999.999 ₫</span
458
  >
459
- <span class="featured__price">1.111.111 ₫</span>
460
  </div>
461
 
462
  <button class="button">Thêm vào giỏ hàng</button>
463
 
464
  <div class="featured__actions">
465
- <!-- <button><i class="ri-search-line"></i></button> -->
466
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
467
  <button>
468
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
469
  </button>
@@ -472,24 +402,24 @@
472
 
473
  <article class="featured__card swiper-slide">
474
  <img
475
- src="assets/img/home-book-1.png"
476
  alt="image"
477
  class="featured__img"
478
  />
479
 
480
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
481
  <div class="featured__prices">
482
- <span class="featured__discount" data-price="999999"
483
- >999.999 ₫</span
484
  >
485
- <span class="featured__price">1.111.111 ₫</span>
486
  </div>
487
 
488
  <button class="button">Thêm vào giỏ hàng</button>
489
 
490
  <div class="featured__actions">
491
- <!-- <button><i class="ri-search-line"></i></button> -->
492
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
493
  <button>
494
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
495
  </button>
@@ -498,24 +428,24 @@
498
 
499
  <article class="featured__card swiper-slide">
500
  <img
501
- src="assets/img/home-book-1.png"
502
  alt="image"
503
  class="featured__img"
504
  />
505
 
506
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
507
  <div class="featured__prices">
508
- <span class="featured__discount" data-price="999999"
509
- >999.999 ₫</span
510
  >
511
- <span class="featured__price">1.111.111 ₫</span>
512
  </div>
513
 
514
  <button class="button">Thêm vào giỏ hàng</button>
515
 
516
  <div class="featured__actions">
517
- <!-- <button><i class="ri-search-line"></i></button> -->
518
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
519
  <button>
520
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
521
  </button>
@@ -524,24 +454,24 @@
524
 
525
  <article class="featured__card swiper-slide">
526
  <img
527
- src="assets/img/home-book-1.png"
528
  alt="image"
529
  class="featured__img"
530
  />
531
 
532
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
533
  <div class="featured__prices">
534
- <span class="featured__discount" data-price="999999"
535
- >999.999 ₫</span
536
  >
537
- <span class="featured__price">1.111.111 ₫</span>
538
  </div>
539
 
540
  <button class="button">Thêm vào giỏ hàng</button>
541
 
542
  <div class="featured__actions">
543
- <!-- <button><i class="ri-search-line"></i></button> -->
544
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
545
  <button>
546
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
547
  </button>
@@ -564,24 +494,24 @@
564
  <div class="swiper-wrapper">
565
  <article class="featured__card swiper-slide">
566
  <img
567
- src="assets/img/home-book-4.png"
568
  alt="image"
569
  class="featured__img"
570
  />
571
 
572
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
573
  <div class="featured__prices">
574
- <span class="featured__discount" data-price="999999"
575
- >999.999 ₫</span
576
  >
577
- <span class="featured__price">1.111.111 ₫</span>
578
  </div>
579
 
580
  <button class="button">Thêm vào giỏ hàng</button>
581
 
582
  <div class="featured__actions">
583
- <!-- <button><i class="ri-search-line"></i></button> -->
584
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
585
  <button>
586
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
587
  </button>
@@ -590,24 +520,24 @@
590
 
591
  <article class="featured__card swiper-slide">
592
  <img
593
- src="assets/img/home-book-4.png"
594
  alt="image"
595
  class="featured__img"
596
  />
597
 
598
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
599
  <div class="featured__prices">
600
- <span class="featured__discount" data-price="999999"
601
- >999.999 ₫</span
602
  >
603
- <span class="featured__price">1.111.111 ₫</span>
604
  </div>
605
 
606
  <button class="button">Thêm vào giỏ hàng</button>
607
 
608
  <div class="featured__actions">
609
- <!-- <button><i class="ri-search-line"></i></button> -->
610
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
611
  <button>
612
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
613
  </button>
@@ -616,24 +546,24 @@
616
 
617
  <article class="featured__card swiper-slide">
618
  <img
619
- src="assets/img/home-book-4.png"
620
  alt="image"
621
  class="featured__img"
622
  />
623
 
624
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
625
  <div class="featured__prices">
626
- <span class="featured__discount" data-price="999999"
627
- >999.999 ₫</span
628
  >
629
- <span class="featured__price">1.111.111 ₫</span>
630
  </div>
631
 
632
  <button class="button">Thêm vào giỏ hàng</button>
633
 
634
  <div class="featured__actions">
635
- <!-- <button><i class="ri-search-line"></i></button> -->
636
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
637
  <button>
638
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
639
  </button>
@@ -642,24 +572,24 @@
642
 
643
  <article class="featured__card swiper-slide">
644
  <img
645
- src="assets/img/home-book-4.png"
646
  alt="image"
647
  class="featured__img"
648
  />
649
 
650
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
651
  <div class="featured__prices">
652
- <span class="featured__discount" data-price="999999"
653
- >999.999 ₫</span
654
  >
655
- <span class="featured__price">1.111.111 ₫</span>
656
  </div>
657
 
658
  <button class="button">Thêm vào giỏ hàng</button>
659
 
660
  <div class="featured__actions">
661
- <!-- <button><i class="ri-search-line"></i></button> -->
662
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
663
  <button>
664
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
665
  </button>
@@ -668,24 +598,24 @@
668
 
669
  <article class="featured__card swiper-slide">
670
  <img
671
- src="assets/img/home-book-4.png"
672
  alt="image"
673
  class="featured__img"
674
  />
675
 
676
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
677
  <div class="featured__prices">
678
- <span class="featured__discount" data-price="999999"
679
- >999.999 ₫</span
680
  >
681
- <span class="featured__price">1.111.111 ₫</span>
682
  </div>
683
 
684
  <button class="button">Thêm vào giỏ hàng</button>
685
 
686
  <div class="featured__actions">
687
- <!-- <button><i class="ri-search-line"></i></button> -->
688
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
689
  <button>
690
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
691
  </button>
@@ -694,128 +624,24 @@
694
 
695
  <article class="featured__card swiper-slide">
696
  <img
697
- src="assets/img/home-book-4.png"
698
  alt="image"
699
  class="featured__img"
700
  />
701
 
702
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
703
  <div class="featured__prices">
704
- <span class="featured__discount" data-price="999999"
705
- >999.999 ₫</span
706
  >
707
- <span class="featured__price">1.111.111 ₫</span>
708
  </div>
709
 
710
  <button class="button">Thêm vào giỏ hàng</button>
711
 
712
  <div class="featured__actions">
713
- <!-- <button><i class="ri-search-line"></i></button> -->
714
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
715
- <button>
716
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
717
- </button>
718
- </div>
719
- </article>
720
-
721
- <article class="featured__card swiper-slide">
722
- <img
723
- src="assets/img/home-book-4.png"
724
- alt="image"
725
- class="featured__img"
726
- />
727
-
728
- <h2 class="featured__title">Sản phẩm X</h2>
729
- <div class="featured__prices">
730
- <span class="featured__discount" data-price="999999"
731
- >999.999 ₫</span
732
- >
733
- <span class="featured__price">1.111.111 ₫</span>
734
- </div>
735
-
736
- <button class="button">Thêm vào giỏ hàng</button>
737
-
738
- <div class="featured__actions">
739
- <!-- <button><i class="ri-search-line"></i></button> -->
740
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
741
- <button>
742
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
743
- </button>
744
- </div>
745
- </article>
746
-
747
- <article class="featured__card swiper-slide">
748
- <img
749
- src="assets/img/home-book-4.png"
750
- alt="image"
751
- class="featured__img"
752
- />
753
-
754
- <h2 class="featured__title">Sản phẩm X</h2>
755
- <div class="featured__prices">
756
- <span class="featured__discount" data-price="999999"
757
- >999.999 ₫</span
758
- >
759
- <span class="featured__price">1.111.111 ₫</span>
760
- </div>
761
-
762
- <button class="button">Thêm vào giỏ hàng</button>
763
-
764
- <div class="featured__actions">
765
- <!-- <button><i class="ri-search-line"></i></button> -->
766
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
767
- <button>
768
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
769
- </button>
770
- </div>
771
- </article>
772
-
773
- <article class="featured__card swiper-slide">
774
- <img
775
- src="assets/img/home-book-4.png"
776
- alt="image"
777
- class="featured__img"
778
- />
779
-
780
- <h2 class="featured__title">Sản phẩm X</h2>
781
- <div class="featured__prices">
782
- <span class="featured__discount" data-price="999999"
783
- >999.999 ₫</span
784
- >
785
- <span class="featured__price">1.111.111 ₫</span>
786
- </div>
787
-
788
- <button class="button">Thêm vào giỏ hàng</button>
789
-
790
- <div class="featured__actions">
791
- <!-- <button><i class="ri-search-line"></i></button> -->
792
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
793
- <button>
794
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
795
- </button>
796
- </div>
797
- </article>
798
-
799
- <article class="featured__card swiper-slide">
800
- <img
801
- src="assets/img/home-book-4.png"
802
- alt="image"
803
- class="featured__img"
804
- />
805
-
806
- <h2 class="featured__title">Sản phẩm X</h2>
807
- <div class="featured__prices">
808
- <span class="featured__discount" data-price="999999"
809
- >999.999 ₫</span
810
- >
811
- <span class="featured__price">1.111.111 ₫</span>
812
- </div>
813
-
814
- <button class="button">Thêm vào giỏ hàng</button>
815
-
816
- <div class="featured__actions">
817
- <!-- <button><i class="ri-search-line"></i></button> -->
818
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
819
  <button>
820
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
821
  </button>
@@ -838,128 +664,24 @@
838
  <div class="swiper-wrapper">
839
  <article class="featured__card swiper-slide">
840
  <img
841
- src="assets/img/home-book-6.png"
842
- alt="image"
843
- class="featured__img"
844
- />
845
-
846
- <h2 class="featured__title">Sản phẩm X</h2>
847
- <div class="featured__prices">
848
- <span class="featured__discount" data-price="999999"
849
- >999.999 ₫</span
850
- >
851
- <span class="featured__price">1.111.111 ₫</span>
852
- </div>
853
-
854
- <button class="button">Thêm vào giỏ hàng</button>
855
-
856
- <div class="featured__actions">
857
- <!-- <button><i class="ri-search-line"></i></button> -->
858
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
859
- <button>
860
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
861
- </button>
862
- </div>
863
- </article>
864
-
865
- <article class="featured__card swiper-slide">
866
- <img
867
- src="assets/img/home-book-6.png"
868
- alt="image"
869
- class="featured__img"
870
- />
871
-
872
- <h2 class="featured__title">Sản phẩm X</h2>
873
- <div class="featured__prices">
874
- <span class="featured__discount" data-price="999999"
875
- >999.999 ₫</span
876
- >
877
- <span class="featured__price">1.111.111 ₫</span>
878
- </div>
879
-
880
- <button class="button">Thêm vào giỏ hàng</button>
881
-
882
- <div class="featured__actions">
883
- <!-- <button><i class="ri-search-line"></i></button> -->
884
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
885
- <button>
886
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
887
- </button>
888
- </div>
889
- </article>
890
-
891
- <article class="featured__card swiper-slide">
892
- <img
893
- src="assets/img/home-book-6.png"
894
- alt="image"
895
- class="featured__img"
896
- />
897
-
898
- <h2 class="featured__title">Sản phẩm X</h2>
899
- <div class="featured__prices">
900
- <span class="featured__discount" data-price="999999"
901
- >999.999 ₫</span
902
- >
903
- <span class="featured__price">1.111.111 ₫</span>
904
- </div>
905
-
906
- <button class="button">Thêm vào giỏ hàng</button>
907
-
908
- <div class="featured__actions">
909
- <!-- <button><i class="ri-search-line"></i></button> -->
910
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
911
- <button>
912
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
913
- </button>
914
- </div>
915
- </article>
916
-
917
- <article class="featured__card swiper-slide">
918
- <img
919
- src="assets/img/home-book-6.png"
920
- alt="image"
921
- class="featured__img"
922
- />
923
-
924
- <h2 class="featured__title">Sản phẩm X</h2>
925
- <div class="featured__prices">
926
- <span class="featured__discount" data-price="999999"
927
- >999.999 ₫</span
928
- >
929
- <span class="featured__price">1.111.111 ₫</span>
930
- </div>
931
-
932
- <button class="button">Thêm vào giỏ hàng</button>
933
-
934
- <div class="featured__actions">
935
- <!-- <button><i class="ri-search-line"></i></button> -->
936
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
937
- <button>
938
- <i class="ri-eye-line" onclick="openDetailPage()"></i>
939
- </button>
940
- </div>
941
- </article>
942
-
943
- <article class="featured__card swiper-slide">
944
- <img
945
- src="assets/img/home-book-6.png"
946
  alt="image"
947
  class="featured__img"
948
  />
949
 
950
- <h2 class="featured__title">Sản phẩm X</h2>
 
 
951
  <div class="featured__prices">
952
- <span class="featured__discount" data-price="999999"
953
- >999.999 ₫</span
954
  >
955
- <span class="featured__price">1.111.111 ₫</span>
956
  </div>
957
 
958
  <button class="button">Thêm vào giỏ hàng</button>
959
 
960
  <div class="featured__actions">
961
- <!-- <button><i class="ri-search-line"></i></button> -->
962
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
963
  <button>
964
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
965
  </button>
@@ -968,24 +690,22 @@
968
 
969
  <article class="featured__card swiper-slide">
970
  <img
971
- src="assets/img/home-book-6.png"
972
  alt="image"
973
  class="featured__img"
974
  />
975
 
976
- <h2 class="featured__title">Sản phẩm X</h2>
977
  <div class="featured__prices">
978
- <span class="featured__discount" data-price="999999"
979
- >999.999 ₫</span
980
  >
981
- <span class="featured__price">1.111.111 ₫</span>
982
  </div>
983
 
984
  <button class="button">Thêm vào giỏ hàng</button>
985
 
986
  <div class="featured__actions">
987
- <!-- <button><i class="ri-search-line"></i></button> -->
988
- <!-- <button><i class="ri-heart-3-line"></i></button> -->
989
  <button>
990
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
991
  </button>
@@ -994,17 +714,17 @@
994
 
995
  <article class="featured__card swiper-slide">
996
  <img
997
- src="assets/img/home-book-6.png"
998
  alt="image"
999
  class="featured__img"
1000
  />
1001
 
1002
- <h2 class="featured__title">Sản phẩm X</h2>
1003
  <div class="featured__prices">
1004
- <span class="featured__discount" data-price="999999"
1005
- >999.999 ₫</span
1006
  >
1007
- <span class="featured__price">1.111.111 ₫</span>
1008
  </div>
1009
 
1010
  <button class="button">Thêm vào giỏ hàng</button>
@@ -1020,17 +740,17 @@
1020
 
1021
  <article class="featured__card swiper-slide">
1022
  <img
1023
- src="assets/img/home-book-6.png"
1024
  alt="image"
1025
  class="featured__img"
1026
  />
1027
 
1028
- <h2 class="featured__title">Sản phẩm X</h2>
1029
  <div class="featured__prices">
1030
- <span class="featured__discount" data-price="999999"
1031
- >999.999 ₫</span
1032
  >
1033
- <span class="featured__price">1.111.111 ₫</span>
1034
  </div>
1035
 
1036
  <button class="button">Thêm vào giỏ hàng</button>
@@ -1046,17 +766,17 @@
1046
 
1047
  <article class="featured__card swiper-slide">
1048
  <img
1049
- src="assets/img/home-book-6.png"
1050
  alt="image"
1051
  class="featured__img"
1052
  />
1053
 
1054
- <h2 class="featured__title">Sản phẩm X</h2>
1055
  <div class="featured__prices">
1056
- <span class="featured__discount" data-price="999999"
1057
- >999.999 ₫</span
1058
  >
1059
- <span class="featured__price">1.111.111 ₫</span>
1060
  </div>
1061
 
1062
  <button class="button">Thêm vào giỏ hàng</button>
@@ -1072,17 +792,17 @@
1072
 
1073
  <article class="featured__card swiper-slide">
1074
  <img
1075
- src="assets/img/home-book-6.png"
1076
  alt="image"
1077
  class="featured__img"
1078
  />
1079
 
1080
- <h2 class="featured__title">Sản phẩm X</h2>
1081
  <div class="featured__prices">
1082
- <span class="featured__discount" data-price="999999"
1083
- >999.999 ₫</span
1084
  >
1085
- <span class="featured__price">1.111.111 ₫</span>
1086
  </div>
1087
 
1088
  <button class="button">Thêm vào giỏ hàng</button>
@@ -1137,7 +857,7 @@
1137
  </div>
1138
  </section>
1139
 
1140
- <!--==================== Mỹ Kphẩm mới về ====================-->
1141
  <section class="new section" id="new">
1142
  <h2 class="section__title">Hàng mới về</h2>
1143
 
@@ -1146,55 +866,7 @@
1146
  <div class="swiper-wrapper">
1147
  <a href="#" class="new__card swiper-slide">
1148
  <img
1149
- src="assets/img/home-book-1.png"
1150
- alt="image"
1151
- class="new__img"
1152
- />
1153
-
1154
- <div>
1155
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1156
- <div class="new__prices">
1157
- <span class="new__discount">999.999</span>
1158
- <span class="new__price">1.111.111</span>
1159
- </div>
1160
-
1161
- <div class="new__stars">
1162
- <i class="ri-star-fill"></i>
1163
- <i class="ri-star-fill"></i>
1164
- <i class="ri-star-fill"></i>
1165
- <i class="ri-star-fill"></i>
1166
- <i class="ri-star-half-fill"></i>
1167
- </div>
1168
- </div>
1169
- </a>
1170
-
1171
- <a href="#" class="new__card swiper-slide">
1172
- <img
1173
- src="assets/img/home-book-2.png"
1174
- alt="image"
1175
- class="new__img"
1176
- />
1177
-
1178
- <div>
1179
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1180
- <div class="new__prices">
1181
- <span class="new__discount">999.999</span>
1182
- <span class="new__price">1.111.111</span>
1183
- </div>
1184
-
1185
- <div class="new__stars">
1186
- <i class="ri-star-fill"></i>
1187
- <i class="ri-star-fill"></i>
1188
- <i class="ri-star-fill"></i>
1189
- <i class="ri-star-fill"></i>
1190
- <i class="ri-star-half-fill"></i>
1191
- </div>
1192
- </div>
1193
- </a>
1194
-
1195
- <a href="#" class="new__card swiper-slide">
1196
- <img
1197
- src="assets/img/home-book-3.png"
1198
  alt="image"
1199
  class="new__img"
1200
  />
@@ -1218,7 +890,7 @@
1218
 
1219
  <a href="#" class="new__card swiper-slide">
1220
  <img
1221
- src="assets/img/home-book-4.png"
1222
  alt="image"
1223
  class="new__img"
1224
  />
@@ -1242,7 +914,7 @@
1242
 
1243
  <a href="#" class="new__card swiper-slide">
1244
  <img
1245
- src="assets/img/home-book-5.png"
1246
  alt="image"
1247
  class="new__img"
1248
  />
@@ -1266,7 +938,7 @@
1266
 
1267
  <a href="#" class="new__card swiper-slide">
1268
  <img
1269
- src="assets/img/home-book-6.png"
1270
  alt="image"
1271
  class="new__img"
1272
  />
@@ -1290,7 +962,7 @@
1290
 
1291
  <a href="#" class="new__card swiper-slide">
1292
  <img
1293
- src="assets/img/home-book-7.png"
1294
  alt="image"
1295
  class="new__img"
1296
  />
@@ -1314,55 +986,7 @@
1314
 
1315
  <a href="#" class="new__card swiper-slide">
1316
  <img
1317
- src="assets/img/home-book-1.png"
1318
- alt="image"
1319
- class="new__img"
1320
- />
1321
-
1322
- <div>
1323
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1324
- <div class="new__prices">
1325
- <span class="new__discount">999.999</span>
1326
- <span class="new__price">1.111.111</span>
1327
- </div>
1328
-
1329
- <div class="new__stars">
1330
- <i class="ri-star-fill"></i>
1331
- <i class="ri-star-fill"></i>
1332
- <i class="ri-star-fill"></i>
1333
- <i class="ri-star-fill"></i>
1334
- <i class="ri-star-half-fill"></i>
1335
- </div>
1336
- </div>
1337
- </a>
1338
-
1339
- <a href="#" class="new__card swiper-slide">
1340
- <img
1341
- src="assets/img/home-book-2.png"
1342
- alt="image"
1343
- class="new__img"
1344
- />
1345
-
1346
- <div>
1347
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1348
- <div class="new__prices">
1349
- <span class="new__discount">999.999</span>
1350
- <span class="new__price">1.111.111</span>
1351
- </div>
1352
-
1353
- <div class="new__stars">
1354
- <i class="ri-star-fill"></i>
1355
- <i class="ri-star-fill"></i>
1356
- <i class="ri-star-fill"></i>
1357
- <i class="ri-star-fill"></i>
1358
- <i class="ri-star-half-fill"></i>
1359
- </div>
1360
- </div>
1361
- </a>
1362
-
1363
- <a href="#" class="new__card swiper-slide">
1364
- <img
1365
- src="assets/img/home-book-3.png"
1366
  alt="image"
1367
  class="new__img"
1368
  />
@@ -1412,78 +1036,6 @@
1412
  </div>
1413
  </a>
1414
 
1415
- <a href="#" class="new__card swiper-slide">
1416
- <img
1417
- src="assets/img/home-book-2.png"
1418
- alt="image"
1419
- class="new__img"
1420
- />
1421
-
1422
- <div>
1423
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1424
- <div class="new__prices">
1425
- <span class="new__discount">999.999</span>
1426
- <span class="new__price">1.111.111</span>
1427
- </div>
1428
-
1429
- <div class="new__stars">
1430
- <i class="ri-star-fill"></i>
1431
- <i class="ri-star-fill"></i>
1432
- <i class="ri-star-fill"></i>
1433
- <i class="ri-star-fill"></i>
1434
- <i class="ri-star-half-fill"></i>
1435
- </div>
1436
- </div>
1437
- </a>
1438
-
1439
- <a href="#" class="new__card swiper-slide">
1440
- <img
1441
- src="assets/img/home-book-1.png"
1442
- alt="image"
1443
- class="new__img"
1444
- />
1445
-
1446
- <div>
1447
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1448
- <div class="new__prices">
1449
- <span class="new__discount">999.999</span>
1450
- <span class="new__price">1.111.111</span>
1451
- </div>
1452
-
1453
- <div class="new__stars">
1454
- <i class="ri-star-fill"></i>
1455
- <i class="ri-star-fill"></i>
1456
- <i class="ri-star-fill"></i>
1457
- <i class="ri-star-fill"></i>
1458
- <i class="ri-star-half-fill"></i>
1459
- </div>
1460
- </div>
1461
- </a>
1462
-
1463
- <a href="#" class="new__card swiper-slide">
1464
- <img
1465
- src="assets/img/home-book-7.png"
1466
- alt="image"
1467
- class="new__img"
1468
- />
1469
-
1470
- <div>
1471
- <h2 class="new__title">Mỹ phẩm mới về</h2>
1472
- <div class="new__prices">
1473
- <span class="new__discount">999.999</span>
1474
- <span class="new__price">1.111.111</span>
1475
- </div>
1476
-
1477
- <div class="new__stars">
1478
- <i class="ri-star-fill"></i>
1479
- <i class="ri-star-fill"></i>
1480
- <i class="ri-star-fill"></i>
1481
- <i class="ri-star-fill"></i>
1482
- <i class="ri-star-half-fill"></i>
1483
- </div>
1484
- </div>
1485
- </a>
1486
-
1487
  <a href="#" class="new__card swiper-slide">
1488
  <img
1489
  src="assets/img/home-book-6.png"
@@ -1510,7 +1062,7 @@
1510
 
1511
  <a href="#" class="new__card swiper-slide">
1512
  <img
1513
- src="assets/img/home-book-5.png"
1514
  alt="image"
1515
  class="new__img"
1516
  />
@@ -1534,7 +1086,7 @@
1534
 
1535
  <a href="#" class="new__card swiper-slide">
1536
  <img
1537
- src="assets/img/home-book-4.png"
1538
  alt="image"
1539
  class="new__img"
1540
  />
@@ -1558,7 +1110,7 @@
1558
 
1559
  <a href="#" class="new__card swiper-slide">
1560
  <img
1561
- src="assets/img/home-book-3.png"
1562
  alt="image"
1563
  class="new__img"
1564
  />
@@ -1582,7 +1134,7 @@
1582
 
1583
  <a href="#" class="new__card swiper-slide">
1584
  <img
1585
- src="assets/img/home-book-2.png"
1586
  alt="image"
1587
  class="new__img"
1588
  />
@@ -1606,7 +1158,7 @@
1606
 
1607
  <a href="#" class="new__card swiper-slide">
1608
  <img
1609
- src="assets/img/home-book-1.png"
1610
  alt="image"
1611
  class="new__img"
1612
  />
 
174
  <i class="ri-close-line login__close" id="login-close"></i>
175
  </div>
176
 
177
+ <!--==================== USER MENU ====================-->
178
+ <div class="user-menu grid" id="user-menu-content">
179
+ <div class="user-menu__container">
180
+ <div class="user-menu__header">
181
+ <div class="user-menu__avatar">
182
+ <i class="ri-user-3-fill"></i>
183
+ </div>
184
+ <div class="user-menu__info">
185
+ <h3 class="user-menu__name" id="user-name">Người dùng</h3>
186
+ <p class="user-menu__email" id="user-email">email@example.com</p>
187
+ </div>
188
+ </div>
189
+
190
+ <div class="user-menu__actions">
191
+ <button class="user-menu__button" id="view-profile">
192
+ <i class="ri-user-settings-line"></i>
193
+ <span>Thông tin cá nhân</span>
194
+ </button>
195
+
196
+ <button class="user-menu__button" id="view-orders">
197
+ <i class="ri-shopping-bag-2-line"></i>
198
+ <span>Đơn hàng của tôi</span>
199
+ </button>
200
+
201
+ <button class="user-menu__button user-menu__button--logout" id="logout-button">
202
+ <i class="ri-logout-circle-line"></i>
203
+ <span>Đăng xuất</span>
204
+ </button>
205
+ </div>
206
+ </div>
207
+
208
+ <i class="ri-close-line user-menu__close" id="user-menu-close"></i>
209
+ </div>
210
+
211
  <!--==================== MAIN ====================-->
212
  <main class="main">
213
  <!--==================== HOME ====================-->
 
233
  <div class="swiper-wrapper">
234
  <article class="home__article swiper-slide">
235
  <img
236
+ src="assets/img/ntt_1.png"
237
  alt="image"
238
  class="home__img"
239
  />
 
273
 
274
  <article class="home__article swiper-slide">
275
  <img
276
+ src="assets/img/kn_5.png"
277
  alt="image"
278
  class="home__img"
279
  />
 
281
 
282
  <article class="home__article swiper-slide">
283
  <img
284
+ src="assets/img/ntt_3.png"
285
  alt="image"
286
  class="home__img"
287
  />
 
324
  <div class="swiper-wrapper">
325
  <article class="featured__card swiper-slide">
326
  <img
327
+ src="assets/img/ntt_1.png"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
328
  alt="image"
329
  class="featured__img"
330
  />
331
 
332
+ <h2 class="featured__title">
333
+ Bigsize - Nước tẩy trang bí đao Cocoo 500ml
334
+ </h2>
335
  <div class="featured__prices">
336
+ <span class="featured__discount" data-price="295000"
337
+ >295.000 ₫</span
338
  >
339
+ <span class="featured__price">599.000 ₫</span>
340
  </div>
341
 
342
  <button class="button">Thêm vào giỏ hàng</button>
343
 
344
  <div class="featured__actions">
 
 
345
  <button>
346
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
347
  </button>
 
350
 
351
  <article class="featured__card swiper-slide">
352
  <img
353
+ src="assets/img/ntt_2.png"
354
  alt="image"
355
  class="featured__img"
356
  />
357
 
358
+ <h2 class="featured__title">
359
+ Nước Tẩy Trang B5 Prettyskin Cleansing Water GC Hàn Quốc
360
+ </h2>
361
  <div class="featured__prices">
362
+ <span class="featured__discount" data-price="245000"
363
+ >245.000 ₫</span
364
  >
365
+ <span class="featured__price">400.000 ₫</span>
366
  </div>
367
 
368
  <button class="button">Thêm vào giỏ hàng</button>
369
 
370
  <div class="featured__actions">
 
 
371
  <button>
372
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
373
  </button>
 
376
 
377
  <article class="featured__card swiper-slide">
378
  <img
379
+ src="assets/img/ntt_3.png"
380
  alt="image"
381
  class="featured__img"
382
  />
383
 
384
+ <h2 class="featured__title">
385
+ Nước tẩy trang Senka All Clear Water Bright 230ml
386
+ </h2>
387
  <div class="featured__prices">
388
+ <span class="featured__discount" data-price="181000"
389
+ >181.000 ₫</span
390
  >
391
+ <span class="featured__price">238.000 ₫</span>
392
  </div>
393
 
394
  <button class="button">Thêm vào giỏ hàng</button>
395
 
396
  <div class="featured__actions">
 
 
397
  <button>
398
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
399
  </button>
 
402
 
403
  <article class="featured__card swiper-slide">
404
  <img
405
+ src="assets/img/ntt_4.png"
406
  alt="image"
407
  class="featured__img"
408
  />
409
 
410
+ <h2 class="featured__title">
411
+ Nước tẩy trang La Roche-Posay 50ml Minisize
412
+ </h2>
413
  <div class="featured__prices">
414
+ <span class="featured__discount" data-price="45000"
415
+ >45.000 ₫</span
416
  >
417
+ <span class="featured__price">90.000 ₫</span>
418
  </div>
419
 
420
  <button class="button">Thêm vào giỏ hàng</button>
421
 
422
  <div class="featured__actions">
 
 
423
  <button>
424
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
425
  </button>
 
428
 
429
  <article class="featured__card swiper-slide">
430
  <img
431
+ src="assets/img/ntt_5.png"
432
  alt="image"
433
  class="featured__img"
434
  />
435
 
436
+ <h2 class="featured__title">
437
+ Nước tẩy trang Garnier Micellar Cleansing 400ml
438
+ </h2>
439
  <div class="featured__prices">
440
+ <span class="featured__discount" data-price="160000"
441
+ >160.000 ₫</span
442
  >
443
+ <span class="featured__price">199.000 ₫</span>
444
  </div>
445
 
446
  <button class="button">Thêm vào giỏ hàng</button>
447
 
448
  <div class="featured__actions">
 
 
449
  <button>
450
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
451
  </button>
 
454
 
455
  <article class="featured__card swiper-slide">
456
  <img
457
+ src="assets/img/ntt_6.png"
458
  alt="image"
459
  class="featured__img"
460
  />
461
 
462
+ <h2 class="featured__title">
463
+ Nước Tẩy Trang L'Oréal Paris 3 In 1 400ml
464
+ </h2>
465
  <div class="featured__prices">
466
+ <span class="featured__discount" data-price="180000"
467
+ >180.000 ₫</span
468
  >
469
+ <span class="featured__price">240.000 ₫</span>
470
  </div>
471
 
472
  <button class="button">Thêm vào giỏ hàng</button>
473
 
474
  <div class="featured__actions">
 
 
475
  <button>
476
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
477
  </button>
 
494
  <div class="swiper-wrapper">
495
  <article class="featured__card swiper-slide">
496
  <img
497
+ src="assets/img/kn_1.png"
498
  alt="image"
499
  class="featured__img"
500
  />
501
 
502
+ <h2 class="featured__title">
503
+ Kem nền CARSLAN dạng lỏng kiềm dầu 30g
504
+ </h2>
505
  <div class="featured__prices">
506
+ <span class="featured__discount" data-price="299000"
507
+ >299.000 ₫</span
508
  >
509
+ <span class="featured__price">580.000 ₫</span>
510
  </div>
511
 
512
  <button class="button">Thêm vào giỏ hàng</button>
513
 
514
  <div class="featured__actions">
 
 
515
  <button>
516
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
517
  </button>
 
520
 
521
  <article class="featured__card swiper-slide">
522
  <img
523
+ src="assets/img/kn_2.png"
524
  alt="image"
525
  class="featured__img"
526
  />
527
 
528
+ <h2 class="featured__title">
529
+ Kem Nền Bắt Sáng Superstay Lumi Matte 35ml
530
+ </h2>
531
  <div class="featured__prices">
532
+ <span class="featured__discount" data-price="244000"
533
+ >244.000 ₫</span
534
  >
535
+ <span class="featured__price">348.000 ₫</span>
536
  </div>
537
 
538
  <button class="button">Thêm vào giỏ hàng</button>
539
 
540
  <div class="featured__actions">
 
 
541
  <button>
542
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
543
  </button>
 
546
 
547
  <article class="featured__card swiper-slide">
548
  <img
549
+ src="assets/img/kn_3.png"
550
  alt="image"
551
  class="featured__img"
552
  />
553
 
554
+ <h2 class="featured__title">
555
+ Kem Nền Catrice HD Liquid Coverage Foundation 30ml
556
+ </h2>
557
  <div class="featured__prices">
558
+ <span class="featured__discount" data-price="219000"
559
+ >219.000 ₫</span
560
  >
561
+ <span class="featured__price">390.000 ₫</span>
562
  </div>
563
 
564
  <button class="button">Thêm vào giỏ hàng</button>
565
 
566
  <div class="featured__actions">
 
 
567
  <button>
568
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
569
  </button>
 
572
 
573
  <article class="featured__card swiper-slide">
574
  <img
575
+ src="assets/img/kn_4.png"
576
  alt="image"
577
  class="featured__img"
578
  />
579
 
580
+ <h2 class="featured__title">
581
+ Kem nền dạng lỏng Minijumie Joco trong suốt
582
+ </h2>
583
  <div class="featured__prices">
584
+ <span class="featured__discount" data-price="41900"
585
+ >41.900 ₫</span
586
  >
587
+ <span class="featured__price">85.000 ₫</span>
588
  </div>
589
 
590
  <button class="button">Thêm vào giỏ hàng</button>
591
 
592
  <div class="featured__actions">
 
 
593
  <button>
594
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
595
  </button>
 
598
 
599
  <article class="featured__card swiper-slide">
600
  <img
601
+ src="assets/img/kn_5.png"
602
  alt="image"
603
  class="featured__img"
604
  />
605
 
606
+ <h2 class="featured__title">
607
+ Kem Nền Colorkey Dạng Lỏng Dưỡng Ẩm Kiểm Soát Dầu
608
+ </h2>
609
  <div class="featured__prices">
610
+ <span class="featured__discount" data-price="250000"
611
+ >250.000 ₫</span
612
  >
613
+ <span class="featured__price">436.000 ₫</span>
614
  </div>
615
 
616
  <button class="button">Thêm vào giỏ hàng</button>
617
 
618
  <div class="featured__actions">
 
 
619
  <button>
620
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
621
  </button>
 
624
 
625
  <article class="featured__card swiper-slide">
626
  <img
627
+ src="assets/img/kn_6.png"
628
  alt="image"
629
  class="featured__img"
630
  />
631
 
632
+ <h2 class="featured__title">
633
+ Kem Nền Maybelline New York Fit Me Tint Vitamin C & SPF50
634
+ </h2>
635
  <div class="featured__prices">
636
+ <span class="featured__discount" data-price="190000"
637
+ >190.000 ₫</span
638
  >
639
+ <span class="featured__price">228.000 ₫</span>
640
  </div>
641
 
642
  <button class="button">Thêm vào giỏ hàng</button>
643
 
644
  <div class="featured__actions">
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
645
  <button>
646
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
647
  </button>
 
664
  <div class="swiper-wrapper">
665
  <article class="featured__card swiper-slide">
666
  <img
667
+ src="assets/img/s_1.png"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
668
  alt="image"
669
  class="featured__img"
670
  />
671
 
672
+ <h2 class="featured__title">
673
+ Son dưỡng Dior Maximizer </br> mẫu mới
674
+ </h2>
675
  <div class="featured__prices">
676
+ <span class="featured__discount" data-price="490000"
677
+ >490.000 ₫</span
678
  >
679
+ <span class="featured__price">700.000 ₫</span>
680
  </div>
681
 
682
  <button class="button">Thêm vào giỏ hàng</button>
683
 
684
  <div class="featured__actions">
 
 
685
  <button>
686
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
687
  </button>
 
690
 
691
  <article class="featured__card swiper-slide">
692
  <img
693
+ src="assets/img/s_2.png"
694
  alt="image"
695
  class="featured__img"
696
  />
697
 
698
+ <h2 class="featured__title">Son dưỡng MERYTHOD Collagen Melting Lip Balm 5g</h2>
699
  <div class="featured__prices">
700
+ <span class="featured__discount" data-price="237900"
701
+ >237.900 ₫</span
702
  >
703
+ <span class="featured__price">385.000 ₫</span>
704
  </div>
705
 
706
  <button class="button">Thêm vào giỏ hàng</button>
707
 
708
  <div class="featured__actions">
 
 
709
  <button>
710
  <i class="ri-eye-line" onclick="openDetailPage()"></i>
711
  </button>
 
714
 
715
  <article class="featured__card swiper-slide">
716
  <img
717
+ src="assets/img/s_3.png"
718
  alt="image"
719
  class="featured__img"
720
  />
721
 
722
+ <h2 class="featured__title">Son COLORKEY Watery Matte Lip Tint dạng lỏng</h2>
723
  <div class="featured__prices">
724
+ <span class="featured__discount" data-price="258000"
725
+ >258.000 ₫</span
726
  >
727
+ <span class="featured__price">636.900 ₫</span>
728
  </div>
729
 
730
  <button class="button">Thêm vào giỏ hàng</button>
 
740
 
741
  <article class="featured__card swiper-slide">
742
  <img
743
+ src="assets/img/s_4.png"
744
  alt="image"
745
  class="featured__img"
746
  />
747
 
748
+ <h2 class="featured__title">Son Thỏi Romand New Zero Matte Lipstick 3g</h2>
749
  <div class="featured__prices">
750
+ <span class="featured__discount" data-price="165000"
751
+ >165.000 ₫</span
752
  >
753
+ <span class="featured__price">365.000 ₫</span>
754
  </div>
755
 
756
  <button class="button">Thêm vào giỏ hàng</button>
 
766
 
767
  <article class="featured__card swiper-slide">
768
  <img
769
+ src="assets/img/s_5.png"
770
  alt="image"
771
  class="featured__img"
772
  />
773
 
774
+ <h2 class="featured__title">Son bóng dưỡng</br> môi 3CE Glazy</br> Lip Glow</h2>
775
  <div class="featured__prices">
776
+ <span class="featured__discount" data-price="304000"
777
+ >304.000 ₫</span
778
  >
779
+ <span class="featured__price">398.000 ₫</span>
780
  </div>
781
 
782
  <button class="button">Thêm vào giỏ hàng</button>
 
792
 
793
  <article class="featured__card swiper-slide">
794
  <img
795
+ src="assets/img/s_6.png"
796
  alt="image"
797
  class="featured__img"
798
  />
799
 
800
+ <h2 class="featured__title">Son bóng dưỡng</br> môi 3CE Glazy</br> Lip Glow</h2>
801
  <div class="featured__prices">
802
+ <span class="featured__discount" data-price="304000"
803
+ >304.000 ₫</span
804
  >
805
+ <span class="featured__price">398.000 ₫</span>
806
  </div>
807
 
808
  <button class="button">Thêm vào giỏ hàng</button>
 
857
  </div>
858
  </section>
859
 
860
+ <!--==================== Mỹ phẩm mới về ====================-->
861
  <section class="new section" id="new">
862
  <h2 class="section__title">Hàng mới về</h2>
863
 
 
866
  <div class="swiper-wrapper">
867
  <a href="#" class="new__card swiper-slide">
868
  <img
869
+ src="assets/img/ntt_1.png"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
870
  alt="image"
871
  class="new__img"
872
  />
 
890
 
891
  <a href="#" class="new__card swiper-slide">
892
  <img
893
+ src="assets/img/kn_1.png"
894
  alt="image"
895
  class="new__img"
896
  />
 
914
 
915
  <a href="#" class="new__card swiper-slide">
916
  <img
917
+ src="assets/img/s_1.png"
918
  alt="image"
919
  class="new__img"
920
  />
 
938
 
939
  <a href="#" class="new__card swiper-slide">
940
  <img
941
+ src="assets/img/s_3.png"
942
  alt="image"
943
  class="new__img"
944
  />
 
962
 
963
  <a href="#" class="new__card swiper-slide">
964
  <img
965
+ src="assets/img/kn_3.png"
966
  alt="image"
967
  class="new__img"
968
  />
 
986
 
987
  <a href="#" class="new__card swiper-slide">
988
  <img
989
+ src="assets/img/ntt_3.png"
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
990
  alt="image"
991
  class="new__img"
992
  />
 
1036
  </div>
1037
  </a>
1038
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1039
  <a href="#" class="new__card swiper-slide">
1040
  <img
1041
  src="assets/img/home-book-6.png"
 
1062
 
1063
  <a href="#" class="new__card swiper-slide">
1064
  <img
1065
+ src="assets/img/kn_6.png"
1066
  alt="image"
1067
  class="new__img"
1068
  />
 
1086
 
1087
  <a href="#" class="new__card swiper-slide">
1088
  <img
1089
+ src="assets/img/ntt_2.png"
1090
  alt="image"
1091
  class="new__img"
1092
  />
 
1110
 
1111
  <a href="#" class="new__card swiper-slide">
1112
  <img
1113
+ src="assets/img/kn_4.png"
1114
  alt="image"
1115
  class="new__img"
1116
  />
 
1134
 
1135
  <a href="#" class="new__card swiper-slide">
1136
  <img
1137
+ src="assets/img/s_4.png"
1138
  alt="image"
1139
  class="new__img"
1140
  />
 
1158
 
1159
  <a href="#" class="new__card swiper-slide">
1160
  <img
1161
+ src="assets/img/kn_1.png"
1162
  alt="image"
1163
  class="new__img"
1164
  />
product_detail.html CHANGED
@@ -116,15 +116,15 @@
116
  <div>
117
  <h3>Thông tin người nhận</h3>
118
  <h4>Ngân hàng thụ hưởng: MBBank</h4>
119
- <h4>Người thụ hưởng: Do THU LIEU</h4>
120
  <h4>Tài khoản thụ hưởng: 0947.066.385</h4>
121
  <h4>Nội dung: nguoimuahang_sanpham_ngaymuahang</h4>
122
  </div>
123
- <div>
124
  <img src="./assets/img/QR.png" alt="QR" />
125
  </div>
126
 
127
- <button type="submit" class="bag__button button" id="clearCart">
128
  Thanh toán
129
  </button>
130
  </div>
@@ -174,35 +174,205 @@
174
  <i class="ri-close-line login__close" id="login-close"></i>
175
  </div>
176
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
177
  <!--==================== MAIN ====================-->
178
  <main class="main">
179
  <!--==================== DETAIL SECTION ====================-->
180
- <section class="detail section">
181
- <div class="product__title">
182
- <h2 class="title">Sản phẩm X</h2>
183
- </div>
184
- <div style="clear: both"></div>
185
- <div class="product__info">
186
- <div class="product__img">
187
- <img src="./assets/img/home-book-1.png" alt="image" />
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
188
  </div>
189
- <div class="product__detail">
190
- <h3 class="product__about">Thông số kỹ thuật</h3>
191
- <p class="detail">
192
- - Độ Cứng: Trung Bình <br />
193
- - Vật liệu khung: H.M Graphite + Nanometrix + Tungsten <br />
194
- - Vật liệu trục: H.M. Graphite + Namd <br />
195
- - Trọng lượng: 4U 83g +/-2 <br />
196
- - Chu vi cán vợt: 4U G5. <br />
197
- - Chiều dài: 673mm +/-2 <br />
198
- - Mức căng: 28lbs ~ 12,5kg <br />
199
- - Màu sắc: Màu Xanh chuối <br />
200
- - Sản xuất: Nhật Bản. <br />
201
- </p>
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
202
  </div>
203
  </div>
204
-
205
- <div class="product__add2cart"></div>
206
  </section>
207
  <!--==================== JOIN ====================-->
208
  <section class="join section">
 
116
  <div>
117
  <h3>Thông tin người nhận</h3>
118
  <h4>Ngân hàng thụ hưởng: MBBank</h4>
119
+ <h4>Người thụ hưởng: DO THU LIEU</h4>
120
  <h4>Tài khoản thụ hưởng: 0947.066.385</h4>
121
  <h4>Nội dung: nguoimuahang_sanpham_ngaymuahang</h4>
122
  </div>
123
+ <div class="bag__qr">
124
  <img src="./assets/img/QR.png" alt="QR" />
125
  </div>
126
 
127
+ <button type="submit" class="bag__button button" id="checkOut">
128
  Thanh toán
129
  </button>
130
  </div>
 
174
  <i class="ri-close-line login__close" id="login-close"></i>
175
  </div>
176
 
177
+ <!--==================== USER MENU ====================-->
178
+ <div class="user-menu grid" id="user-menu-content">
179
+ <div class="user-menu__container">
180
+ <div class="user-menu__header">
181
+ <div class="user-menu__avatar">
182
+ <i class="ri-user-3-fill"></i>
183
+ </div>
184
+ <div class="user-menu__info">
185
+ <h3 class="user-menu__name" id="user-name">Người dùng</h3>
186
+ <p class="user-menu__email" id="user-email">email@example.com</p>
187
+ </div>
188
+ </div>
189
+
190
+ <div class="user-menu__actions">
191
+ <button class="user-menu__button" id="view-profile">
192
+ <i class="ri-user-settings-line"></i>
193
+ <span>Thông tin cá nhân</span>
194
+ </button>
195
+
196
+ <button class="user-menu__button" id="view-orders">
197
+ <i class="ri-shopping-bag-2-line"></i>
198
+ <span>Đơn hàng của tôi</span>
199
+ </button>
200
+
201
+ <button
202
+ class="user-menu__button user-menu__button--logout"
203
+ id="logout-button"
204
+ >
205
+ <i class="ri-logout-circle-line"></i>
206
+ <span>Đăng xuất</span>
207
+ </button>
208
+ </div>
209
+ </div>
210
+
211
+ <i class="ri-close-line user-menu__close" id="user-menu-close"></i>
212
+ </div>
213
+
214
  <!--==================== MAIN ====================-->
215
  <main class="main">
216
  <!--==================== DETAIL SECTION ====================-->
217
+ <section class="product-detail section">
218
+ <div class="container">
219
+ <!-- Product Title -->
220
+ <div class="product-detail__header">
221
+ <h1 class="product-detail__title">
222
+ Bigsize - Nước tẩy trang bí đao Cocoon tẩy sạch makeup & giảm dầu
223
+ 500ml
224
+ </h1>
225
+ <!-- <div class="product-detail__breadcrumb">
226
+ <a href="index.html">Trang chủ</a>
227
+ <span>/</span>
228
+ <a href="#featured">Sản phẩm</a>
229
+ <span>/</span>
230
+ <span>Chi tiết sản phẩm</span>
231
+ </div> -->
232
+ </div>
233
+
234
+ <!-- Product Content -->
235
+ <div class="product-detail__content">
236
+ <!-- Product Image -->
237
+ <div class="product-detail__image">
238
+ <div class="product-detail__image-main">
239
+ <img
240
+ src="./assets/img/home-book-1.png"
241
+ alt="Nước tẩy trang bí đao Cocoon"
242
+ />
243
+ </div>
244
+ <div class="product-detail__image-gallery">
245
+ <img
246
+ src="./assets/img/ntt_1_1.png"
247
+ alt="Ảnh 1"
248
+ class="gallery-thumb active"
249
+ />
250
+ <img
251
+ src="./assets/img/ntt_1_2.png"
252
+ alt="Ảnh 2"
253
+ class="gallery-thumb"
254
+ />
255
+ <img
256
+ src="./assets/img/ntt_1_3.png"
257
+ alt="Ảnh 3"
258
+ class="gallery-thumb"
259
+ />
260
+ <img
261
+ src="./assets/img/ntt_1_4.png"
262
+ alt="Ảnh 4"
263
+ class="gallery-thumb"
264
+ />
265
+ </div>
266
+ </div>
267
+
268
+ <!-- Product Info -->
269
+ <div class="product-detail__info">
270
+ <div class="product-detail__brand">
271
+ <span class="brand-tag">Cocoon</span>
272
+ <span class="product-code">Mã SP: COCOON500ML</span>
273
+ </div>
274
+
275
+ <h2 class="product-detail__name">Nước Tẩy Trang Bí Đao Cocoon</h2>
276
+
277
+ <div class="product-detail__rating">
278
+ <div class="rating-stars">
279
+ <i class="ri-star-fill"></i>
280
+ <i class="ri-star-fill"></i>
281
+ <i class="ri-star-fill"></i>
282
+ <i class="ri-star-fill"></i>
283
+ <i class="ri-star-half-fill"></i>
284
+ </div>
285
+ <span class="rating-text">(4.5/5 - 127 đánh giá)</span>
286
+ </div>
287
+
288
+ <div class="product-detail__price">
289
+ <span class="price-current">199.000 ₫</span>
290
+ <span class="price-original">250.000 ₫</span>
291
+ <span class="price-discount">-20%</span>
292
+ </div>
293
+
294
+ <div class="product-detail__description">
295
+ <h3>Mô tả sản phẩm:</h3>
296
+ <ul>
297
+ <li>Nước tẩy trang từ bí đao tự nhiên</li>
298
+ <li>Làm sạch sâu, loại bỏ hoàn toàn makeup</li>
299
+ <li>Kiểm soát dầu thừa, se khít lỗ chân lông</li>
300
+ <li>Không gây khô da, phù hợp mọi loại da</li>
301
+ <li>Dung tích: 500ml</li>
302
+ </ul>
303
+ </div>
304
+
305
+ <div class="product-detail__quantity">
306
+ <span class="quantity-label">Số lượng:</span>
307
+ <div class="quantity-controls">
308
+ <button class="qty-btn qty-minus">-</button>
309
+ <input type="number" value="1" min="1" class="qty-input" />
310
+ <button class="qty-btn qty-plus">+</button>
311
+ </div>
312
+ <span class="stock-info">Còn 47 sản phẩm</span>
313
+ </div>
314
+
315
+ <div class="product-detail__actions">
316
+ <button class="btn-add-cart button">
317
+ <i class="ri-shopping-cart-line"></i>
318
+ Thêm vào giỏ hàng
319
+ </button>
320
+ <button class="btn-buy-now button button--secondary">
321
+ Mua ngay
322
+ </button>
323
+ <button class="btn-wishlist">
324
+ <i class="ri-heart-line"></i>
325
+ </button>
326
+ </div>
327
+
328
+ <div class="product-detail__features">
329
+ <div class="feature-item">
330
+ <i class="ri-truck-line"></i>
331
+ <span>Miễn phí vận chuyển đơn > 500k</span>
332
+ </div>
333
+ <div class="feature-item">
334
+ <i class="ri-refresh-line"></i>
335
+ <span>Đổi trả trong 30 ngày</span>
336
+ </div>
337
+ <div class="feature-item">
338
+ <i class="ri-verified-badge-line"></i>
339
+ <span>Sản phẩm chính hãng 100%</span>
340
+ </div>
341
+ </div>
342
+ </div>
343
  </div>
344
+
345
+ <!-- Product Specifications -->
346
+ <div class="product-detail__specs">
347
+ <h3 class="specs-title">Thông số kỹ thuật</h3>
348
+ <div class="specs-grid">
349
+ <div class="spec-item">
350
+ <span class="spec-label">Thương hiệu:</span>
351
+ <span class="spec-value">Cocoon</span>
352
+ </div>
353
+ <div class="spec-item">
354
+ <span class="spec-label">Dung tích:</span>
355
+ <span class="spec-value">500ml</span>
356
+ </div>
357
+ <div class="spec-item">
358
+ <span class="spec-label">Xuất xứ:</span>
359
+ <span class="spec-value">Việt Nam</span>
360
+ </div>
361
+ <div class="spec-item">
362
+ <span class="spec-label">Loại da:</span>
363
+ <span class="spec-value">Mọi loại da</span>
364
+ </div>
365
+ <div class="spec-item">
366
+ <span class="spec-label">Hạn sử dụng:</span>
367
+ <span class="spec-value">3 năm kể từ ngày sản xuất</span>
368
+ </div>
369
+ <div class="spec-item">
370
+ <span class="spec-label">Bảo quản:</span>
371
+ <span class="spec-value">Nơi khô ráo, thoáng mát</span>
372
+ </div>
373
+ </div>
374
  </div>
375
  </div>
 
 
376
  </section>
377
  <!--==================== JOIN ====================-->
378
  <section class="join section">