project / ai-chat.html
ngoctuanai's picture
Update ai-chat.html
12c5f04 verified
raw
history blame
12.6 kB
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>AI Chat Cards Styled</title>
<style>
/* Compiled CSS from the provided SCSS */
@import url("https://fonts.googleapis.com/css2?family=Nunito:wght@400;600&display=swap");
/* SCSS Variables replaced with values */
:root { /* Define CSS variables for potential reuse */
--clr-blue: #1890ff;
--clr-green: #01c3a8;
--clr-orange: #ffb741;
--clr-red: #a63d2a;
--bg-main: #232228;
--bg-card-footer: #151419;
--border-card-footer: #292929;
--progress-bar-bg: #363636;
--text-light: #fff;
--text-medium: #ddd;
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
min-height: 100vh;
min-height: 100svh;
background: var(--bg-main);
font-family: "Nunito", sans-serif;
position: relative;
overflow-x: hidden;
display: grid;
place-items: center;
}
a {
text-decoration: none;
display: inline-block;
}
section {
width: 100%;
display: flex;
justify-content: center;
flex-wrap: wrap;
max-width: 50em;
margin-inline: auto;
gap: 3.25rem;
position: relative;
z-index: 10;
align-items: center; /* Changed from center to stretch for potentially varying card heights */
padding: 5em 1em; /* Added horizontal padding */
}
section .card {
position: relative;
z-index: 555;
max-width: 20rem;
min-height: 20rem; /* Fixed height might cause content overflow issues */
width: 90%; /* Ensure it fits on smaller screens */
display: grid; /* This combined with absolute children is unusual, might need review */
place-content: center;
place-items: center;
text-align: center;
box-shadow: 1px 12px 25px rgba(0, 0, 0, 0.78);
border-radius: 2.25rem;
/* Backgrounds are set per color class */
}
section .card::before {
position: absolute;
content: "";
top: 0;
left:0; /* Added left:0 */
width: 100%;
height: 100%;
border-radius: 2.25rem;
z-index: -1;
border: 0.155rem solid transparent;
-webkit-mask: linear-gradient(#fff 0 0) padding-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: destination-out;
mask-composite: exclude;
/* Background gradients are set per color class */
}
section .card-header {
position: absolute;
top: 0;
left: 0;
right: 0;
width: 100%;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0.8em 0.5em 0em 1.5em;
}
section .card-header .date {
color: var(--text-medium);
font-size: 0.9em; /* Added font-size for visibility */
}
section .card-header svg {
color: var(--text-light);
width: 2rem; /* Adjusted size */
height: 2rem; /* Added height */
cursor: pointer;
}
section .card-body {
/* Absolute positioning might overlap footer if content is too long */
position: absolute;
width: 100%;
display: block;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
padding: 0.7em 1.25em 0.5em 1.5em;
}
section .card-body h3 {
color: var(--text-light);
font-size: 1.375rem;
margin-top: 0.625em;
margin-bottom: 0.188em;
text-transform: capitalize;
font-weight: 600;
word-wrap: break-word; /* Prevent overflow */
}
section .card-body p {
color: var(--text-medium);
font-size: 1rem;
letter-spacing: 0.031rem;
word-wrap: break-word; /* Prevent overflow */
}
/* Progress bar styles included but not used in this HTML */
section .card-body .progress {
margin-top: 0.938rem;
}
section .card-body .progress .progress-bar {
position: relative;
width: 100%;
background: var(--progress-bar-bg);
height: 0.313rem;
display: block;
border-radius: 3.125rem;
}
section .card-body .progress .progress-bar:after {
position: absolute;
content: "";
top: 0;
left: 0;
right: 0;
bottom: 0;
height: 100%;
display: block;
border-radius: 3.125rem;
/* Width and background set per color class */
}
section .card-body .progress span:first-of-type {
color: var(--text-light);
text-align: left;
font-weight: 600;
width: 100%;
display: block;
margin-bottom: 0.313rem;
}
section .card-body .progress span {
margin-top: 0.313rem;
text-align: right;
display: block;
color: var(--text-light);
}
/* End progress bar styles */
section .card-footer {
position: absolute;
bottom: 0;
left: 0;
right: 0;
width: 100%;
border-top: 0.063rem solid var(--border-card-footer);
display: flex;
justify-content: space-between; /* This will push the button to the right */
align-items: center; /* Vertically align items */
padding: 0.7em 1.25em 0.5em 1.5em;
background: var(--bg-card-footer);
border-bottom-left-radius: 2.25rem;
border-bottom-right-radius: 2.25rem;
}
/* Footer list styles included but not used in this HTML */
section .card-footer ul {
display: flex;
align-items: center;
padding-left: 0; /* Remove default padding */
margin-bottom: 0; /* Remove default margin */
}
section .card-footer ul li {
list-style-type: none;
display: flex;
margin-right: -0.625rem;
}
section .card-footer ul li img {
border-radius: 50%;
width: 1.875rem;
height: 1.875rem;
object-fit: cover;
border: 2px solid var(--bg-card-footer); /* Add border */
}
/* End footer list styles */
/* Add button styles included but not used in this HTML */
section .card-footer .btn-add {
width: 1.375rem;
height: 1.375rem;
border-radius: 50%;
color: var(--text-light);
display: flex;
justify-content: center;
align-items: center;
/* Background set per color class */
}
section .card-footer .btn-add svg {
width: 1rem;
height: 1rem; /* Added height */
}
/* End add button styles */
section .card-footer .btn-countdown {
background: #222127; /* Darker background for button */
color: var(--text-light);
border-radius: 2em;
padding: 0.625rem 1.5rem;
font-size: 0.9em; /* Adjusted font size */
transition: background-color 0.3s ease; /* Added transition */
}
/* Hover effects are set per color class */
/* --- Green Card --- */
section .card.green {
background: radial-gradient(ellipse at right top, #107667ed 0%, #151419 47%, #151419 100%);
}
section .card.green::before {
background: linear-gradient(45deg, #232228, #232228, #232228, #232228, var(--clr-green)) border-box;
}
/* Styles for elements not present in current HTML */
section .card.green .btn-add { background: var(--clr-green); }
section .card.green .progress-bar:after { width: 90%; background: var(--clr-green); }
/* --- */
section .card.green .btn-countdown:hover {
background: var(--clr-green);
}
/* --- Orange Card --- */
section .card.orange {
background: radial-gradient(ellipse at right top, #ffb74194 0%, #151419 47%, #151419 100%);
}
section .card.orange::before {
background: linear-gradient(45deg, #232228, #232228, #232228, #232228, var(--clr-orange)) border-box;
}
/* Styles for elements not present in current HTML */
section .card.orange .btn-add { background: var(--clr-orange); }
section .card.orange .progress-bar:after { width: 30%; background: var(--clr-orange); }
/* --- */
section .card.orange .btn-countdown:hover {
background: var(--clr-orange);
}
/* --- Red Card --- */
section .card.red {
background: radial-gradient(ellipse at right top, #a63d2a82 0%, #151419 47%, #151419 100%);
}
section .card.red::before {
background: linear-gradient(45deg, #232228, #232228, #232228, #232228, var(--clr-red)) border-box;
}
/* Styles for elements not present in current HTML */
section .card.red .btn-add { background: var(--clr-red); }
section .card.red .progress-bar:after { width: 50%; background: var(--clr-red); }
/* --- */
section .card.red .btn-countdown:hover {
background: var(--clr-red);
}
/* --- Blue Card (Styles defined but not used in current HTML) --- */
section .card.blue {
background: radial-gradient(ellipse at right top, #00458f8f 0%, #151419 45%, #151419 100%);
}
section .card.blue::before {
background: linear-gradient(45deg, #232228, #232228, #232228, #232228, var(--clr-blue)) border-box;
}
/* Styles for elements not present in current HTML */
section .card.blue .btn-add { background: var(--clr-blue); }
section .card.blue .progress-bar:after { width: 20%; background: var(--clr-blue); }
/* --- */
section .card.blue .btn-countdown:hover {
background: var(--clr-blue);
}
</style>
</head>
<body>
<section>
<div class="card green">
<div class="card-header">
<div class="date">
2024 </div>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path fill-rule="evenodd" d="M10.5 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z" clip-rule="evenodd" />
</svg>
</div>
<div class="card-body">
<h3>🌟ChatGPT Free</h3>
<p>Phiên bản miễn phí</p>
</div>
<div class="card-footer">
<div></div>
<a href="https://chatgptplugins.vercel.app" class="btn-countdown" target="_blank">Start</a>
</div>
</div>
<div class="card orange">
<div class="card-header">
<div class="date">
2024 </div>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path fill-rule="evenodd" d="M10.5 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z" clip-rule="evenodd" />
</svg>
</div>
<div class="card-body">
<h3>🌟Coze AI (AI Plus)</h3>
<p>AI Plus trên nền tảng Coze</p>
</div>
<div class="card-footer">
<div></div>
<a href="https://www.coze.com/s/Zs8M75qpn/" class="btn-countdown" target="_blank">Start</a>
</div>
</div>
<div class="card red">
<div class="card-header">
<div class="date">
2024 </div>
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="currentColor">
<path fill-rule="evenodd" d="M10.5 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Zm0 6a1.5 1.5 0 1 1 3 0 1.5 1.5 0 0 1-3 0Z" clip-rule="evenodd" />
</svg>
</div>
<div class="card-body">
<h3>🌟Coze AI (Gemini Advanced)</h3>
<p>Gemini Advanced trên nền tảng Coze</p>
</div>
<div class="card-footer">
<div></div>
<a href="https://www.coze.com/s/Zs8M7U4Dy/" class="btn-countdown" target="_blank">Start</a>
</div>
</div>
</section>
</body>
</html>