AngularJS
ReactJS
Vue.js
JavaScript
CSS3
HTML5
/* WRAPPER */
.kaba-tech-stack-simple {
width: 100%;
margin: 40px 0;
padding: 60px 40px;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, sans-serif;
}
.kaba-tech-stack-simple::before { content: none; }
/* GRID */
.kaba-tech-stack-grid-simple {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 30px;
width: 100%;
max-width: 1400px;
margin: 0 auto 50px;
}
/* ITEM */
.kaba-tech-item-simple {
padding: 30px 20px;
border-radius: 18px;
background: #fff;
text-align: center;
height: 160px;
transition: 0.3s ease;
box-shadow:
0 5px 15px rgba(0, 0, 0, 0.05),
0 2px 5px rgba(0, 0, 0, 0.03),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
position: relative;
overflow: hidden;
cursor: pointer;
}
/* ACCENT BAR + OUTLINE */
.kaba-tech-item-simple::before,
.kaba-tech-item-simple::after {
content: ”;
position: absolute;
inset: 0;
border-radius: inherit;
}
.kaba-tech-item-simple::before {
height: 5px;
top: 0;
}
/* COLOR BARS */
.kaba-tech-item-simple:nth-child(1)::before { background: linear-gradient(90deg, #dd0031, #c3002f); }
.kaba-tech-item-simple:nth-child(2)::before { background: linear-gradient(90deg, #61dafb, #00d8ff); }
.kaba-tech-item-simple:nth-child(3)::before { background: linear-gradient(90deg, #41b883, #34495e); }
.kaba-tech-item-simple:nth-child(4)::before { background: linear-gradient(90deg, #f7df1e, #f0db4f); }
.kaba-tech-item-simple:nth-child(5)::before { background: linear-gradient(90deg, #1572b6, #33a9dc); }
.kaba-tech-item-simple:nth-child(6)::before { background: linear-gradient(90deg, #e34f26, #f06529); }
/* HOVER OUTLINE */
.kaba-tech-item-simple::after {
padding: 1px;
opacity: 0;
background: linear-gradient(135deg, rgba(255,255,255,0.8), rgba(255,255,255,0.2));
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
transition: 0.3s ease;
}
/* IMAGE */
.kaba-tech-item-simple img {
width: 80px;
height: 80px;
object-fit: contain;
transition: 0.3s ease;
margin-bottom: 20px;
}
/* LABEL */
.kaba-tech-label-simple {
font-size: 16px;
font-weight: 600;
color: #2d3748;
transition: 0.3s ease;
}
/* HOVER */
.kaba-tech-item-simple:hover {
transform: translateY(-5px);
box-shadow:
0 15px 30px rgba(0, 0, 0, 0.1),
0 5px 15px rgba(0, 0, 0, 0.05),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
}
.kaba-tech-item-simple:hover::after { opacity: 1; }
.kaba-tech-item-simple:hover img { transform: scale(1.1); }
.kaba-tech-item-simple:hover .kaba-tech-label-simple { color: #1a202c; }
/* BUTTON */
.kaba-explore-solutions-container {
display: flex;
justify-content: center;
width: 100%;
}
.kaba-explore-solutions-btn {
display: inline-flex;
align-items: center;
justify-content: center;
padding: 16px 36px;
background: linear-gradient(135deg, #667eea, #764ba2);
color: #fff;
border-radius: 50px;
font-size: 18px;
font-weight: 600;
transition: 0.3s ease;
box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
position: relative;
overflow: hidden;
}
.kaba-explore-solutions-btn:hover {
transform: translateY(-3px);
background: linear-gradient(135deg, #5a6fd8, #6a4190);
box-shadow: 0 12px 30px rgba(102, 126, 234, 0.4);
}
.kaba-explore-solutions-btn::after {
content: ”;
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(to right, transparent, rgba(255,255,255,0.1), transparent);
transform: rotate(30deg);
transition: 0.6s;
}
.kaba-explore-solutions-btn:hover::after {
transform: rotate(30deg) translateX(100%);
}
/* RESPONSIVE */
@media (max-width: 1200px) {
.kaba-tech-stack-simple { padding: 50px 30px; }
.kaba-tech-item-simple { height: 150px; }
.kaba-tech-item-simple img { width: 70px; height: 70px; }
}
@media (max-width: 992px) {
.kaba-tech-stack-grid-simple { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 768px) {
.kaba-tech-stack-simple { padding: 35px 20px; }
.kaba-tech-stack-grid-simple { grid-template-columns: repeat(2, 1fr); }
.kaba-tech-item-simple img { width: 65px; height: 65px; }
}
@media (max-width: 576px) {
.kaba-tech-item-simple img { width: 60px; height: 60px; }
}
@media (max-width: 480px) {
.kaba-tech-item-simple img { width: 55px; height: 55px; }
}
@media (max-width: 360px) {
.kaba-tech-stack-grid-simple { grid-template-columns: 1fr; }
.kaba-tech-item-simple {
height: 100px;
flex-direction: row;
text-align: left;
padding: 15px 20px;
}
.kaba-tech-item-simple img {
width: 45px;
height: 45px;
margin-right: 20px;
margin-bottom: 0;
}
}
Android
iOS
Flutter
Kotlin
React Native
/* ============ WRAPPER ============ */
.kaba-tech-stack-mobile {
width: 100%;
margin: 40px 0;
padding: 60px 40px;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
font-family: system-ui, sans-serif;
}
/* ============ GRID ============ */
.kaba-tech-stack-grid-mobile {
display: grid;
grid-template-columns: repeat(5, 1fr);
gap: 30px;
width: 100%;
max-width: 1400px;
margin-bottom: 50px;
}
/* ============ ITEM CARD ============ */
.kaba-tech-item-mobile {
padding: 30px 20px;
border-radius: 18px;
background: #fff;
height: 160px;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
transition: 0.3s;
box-shadow: 0 5px 15px rgba(0,0,0,0.05), 0 2px 5px rgba(0,0,0,0.03), inset 0 1px 0 rgba(255,255,255,0.9);
cursor: pointer;
overflow: hidden;
}
/* Hover outline */
.kaba-tech-item-mobile::after {
content: “”;
position: absolute;
inset: 0;
border-radius: inherit;
padding: 1px;
background: linear-gradient(135deg, rgba(255,255,255,.8), rgba(255,255,255,.2));
-webkit-mask:
linear-gradient(#fff 0 0) content-box,
linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
opacity: 0;
transition: 0.3s;
}
/* Top color bar */
.kaba-tech-item-mobile::before {
content: “”;
position: absolute;
top: 0;
height: 5px;
left: 0;
right: 0;
border-radius: 18px 18px 0 0;
}
/* Accent colors */
.kaba-tech-item-mobile:nth-child(1)::before { background: linear-gradient(90deg, #3DDC84, #34A853); }
.kaba-tech-item-mobile:nth-child(2)::before { background: linear-gradient(90deg, #000, #666); }
.kaba-tech-item-mobile:nth-child(3)::before { background: linear-gradient(90deg, #02569B, #13B9FD); }
.kaba-tech-item-mobile:nth-child(4)::before { background: linear-gradient(90deg, #7F52FF, #B97CF9); }
.kaba-tech-item-mobile:nth-child(5)::before { background: linear-gradient(90deg, #61dafb, #00d8ff); }
/* Image */
.kaba-tech-item-mobile img {
width: 80px;
height: 80px;
object-fit: contain;
margin-bottom: 20px;
transition: 0.3s;
z-index: 2;
}
/* Label */
.kaba-tech-label-mobile {
font-size: 16px;
font-weight: 600;
color: #2d3748;
transition: 0.3s;
z-index: 2;
}
/* Hover states */
.kaba-tech-item-mobile:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0,0,0,0.1), 0 5px 15px rgba(0,0,0,0.05);
}
.kaba-tech-item-mobile:hover::after { opacity: 1; }
.kaba-tech-item-mobile:hover img { transform: scale(1.1); }
.kaba-tech-item-mobile:hover .kaba-tech-label-mobile { color: #1a202c; }
/* ============ BUTTON ============ */
.kaba-explore-solutions-container {
display: flex;
justify-content: center;
width: 100%;
}
.kaba-explore-solutions-btn {
display: inline-flex;
align-items: center;
padding: 16px 36px;
background: linear-gradient(135deg, #667eea, #764ba2);
color: #fff;
font-size: 18px;
font-weight: 600;
border-radius: 50px;
text-decoration: none;
transition: 0.3s;
box-shadow: 0 8px 25px rgba(102,126,234,0.3);
position: relative;
overflow: hidden;
}
.kaba-explore-solutions-btn:hover {
transform: translateY(-3px);
background: linear-gradient(135deg, #5a6fd8, #6a4190);
}
/* Shine effect */
.kaba-explore-solutions-btn::after {
content: “”;
position: absolute;
top: -50%;
left: -50%;
width: 200%;
height: 200%;
background: linear-gradient(transparent, rgba(255,255,255,0.1), transparent);
transform: rotate(30deg);
transition: 0.6s;
}
.kaba-explore-solutions-btn:hover::after {
transform: rotate(30deg) translateX(100%);
}
/* ============ RESPONSIVE ============ */
@media (max-width: 992px) {
.kaba-tech-stack-mobile { padding: 40px 25px; }
.kaba-tech-stack-grid-mobile { grid-template-columns: repeat(3,1fr); gap: 25px; }
.kaba-tech-label-mobile { font-size: 17px; }
}
@media (max-width: 768px) {
.kaba-tech-stack-mobile { padding: 35px 20px; }
.kaba-tech-stack-grid-mobile { grid-template-columns: repeat(2,1fr); gap: 20px; }
.kaba-explore-solutions-btn { font-size: 15px; padding: 13px 28px; }
}
@media (max-width: 480px) {
.kaba-tech-stack-mobile { padding: 25px 12px; }
.kaba-tech-stack-grid-mobile { gap: 12px; }
.kaba-tech-item-mobile { height: 120px; }
.kaba-tech-item-mobile img { width: 55px; height: 55px; }
}
@media (max-width: 360px) {
.kaba-tech-stack-grid-mobile { grid-template-columns: 1fr; }
.kaba-tech-item-mobile {
height: 100px;
flex-direction: row;
padding: 15px 20px;
text-align: left;
}
.kaba-tech-item-mobile img {
width: 45px;
height: 45px;
margin-right: 20px;
}
}
OpenAI
TensorFlow
PyTorch
NumPy
Pandas
Python
/* Base Reset */
.kaba-ai-dev * { box-sizing: border-box; }
/* Wrapper */
.kaba-ai-dev {
max-width: 1200px;
margin: 40px auto;
background: #fff;
border-radius: 12px;
box-shadow: 0 4px 12px rgba(0,0,0,.05);
font-family: -apple-system, BlinkMacSystemFont, “Segoe UI”, Roboto, sans-serif;
padding-bottom: 50px;
display: flex;
flex-direction: column;
align-items: center;
}
/* Header */
.kaba-ai-dev-header {
width: 100%;
padding: 40px 30px 30px;
}
/* Grid */
.kaba-ai-dev-grid {
display: grid;
grid-template-columns: repeat(6, 1fr);
gap: 24px;
width: 100%;
max-width: 1400px;
padding: 0 30px 40px;
margin-bottom: 30px;
}
/* Tech Item */
.kaba-tech-item {
background: #fff;
border: 1px solid #e1e5e9;
border-radius: 12px;
height: 160px;
padding: 25px 15px;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
position: relative;
box-shadow: 0 5px 15px rgba(0,0,0,.05);
transition: .3s;
cursor: pointer;
overflow: hidden;
}
/* Accent Bar */
.kaba-tech-item::before {
content: “”;
position: absolute;
top: 0; left: 0; right: 0;
height: 5px;
border-radius: 12px 12px 0 0;
}
/* Accent Colors */
.kaba-tech-item:nth-child(1)::before { background: linear-gradient(90deg,#412991,#8B5CF6); }
.kaba-tech-item:nth-child(2)::before { background: linear-gradient(90deg,#FF6F00,#FF8F00); }
.kaba-tech-item:nth-child(3)::before { background: linear-gradient(90deg,#EE4C2C,#FF6B35); }
.kaba-tech-item:nth-child(4)::before { background: linear-gradient(90deg,#4D77CF,#6295E2); }
.kaba-tech-item:nth-child(5)::before { background: linear-gradient(90deg,#130754,#2A4365); }
.kaba-tech-item:nth-child(6)::before { background: linear-gradient(90deg,#3776AB,#FFD43B); }
/* Images */
.kaba-tech-item img {
width: 70px;
height: 70px;
object-fit: contain;
filter: grayscale(30%);
transition: .3s;
margin-bottom: 15px;
}
/* Label */
.kaba-tech-label {
font-size: 16px;
font-weight: 600;
color: #495057;
transition: .3s;
}
/* Hover */
.kaba-tech-item:hover {
transform: translateY(-5px);
box-shadow: 0 15px 30px rgba(0,0,0,.1);
}
.kaba-tech-item:hover img {
filter: grayscale(0%);
transform: scale(1.15);
}
.kaba-tech-item:hover .kaba-tech-label {
color: #1a1a1a;
}
/* Explore Button Container */
.kaba-explore-solutions-container {
width: 100%;
display: flex;
justify-content: center;
}
/* Explore Button */
.kaba-explore-solutions-btn {
padding: 16px 36px;
background: linear-gradient(135deg,#667eea,#764ba2);
color: #fff;
font-size: 18px;
font-weight: 600;
border-radius: 50px;
text-decoration: none;
box-shadow: 0 8px 25px rgba(102,126,234,.3);
position: relative;
transition: .3s;
overflow: hidden;
}
.kaba-explore-solutions-btn:hover {
transform: translateY(-3px);
background: linear-gradient(135deg,#5a6fd8,#6a4190);
}
/* Shine */
.kaba-explore-solutions-btn::after {
content: “”;
position: absolute;
top: -50%; left: -50%;
width: 200%; height: 200%;
background: linear-gradient(transparent,rgba(255,255,255,.1),transparent);
transform: rotate(30deg);
transition: .6s;
}
.kaba-explore-solutions-btn:hover::after {
transform: rotate(30deg) translateX(100%);
}
/* Responsive */
@media (max-width:1200px) {
.kaba-ai-dev-grid { grid-template-columns: repeat(3,1fr); gap: 25px; }
.kaba-tech-item { height: 150px; }
}
@media (max-width:992px) {
.kaba-ai-dev { margin: 30px 20px; }
.kaba-ai-dev-grid { gap: 20px; padding: 0 25px 30px; }
}
@media (max-width:768px) {
.kaba-ai-dev { margin: 25px 15px; }
.kaba-ai-dev-grid { grid-template-columns: repeat(2,1fr); gap: 20px; }
.kaba-tech-item img { width: 60px; height: 60px; }
}
@media (max-width:576px) {
.kaba-ai-dev-grid { gap: 15px; padding: 0 15px 20px; }
}
@media (max-width:480px) {
.kaba-ai-dev-grid { gap: 12px; }
.kaba-tech-item { height: 120px; }
}
@media (max-width:360px) {
.kaba-ai-dev-grid { grid-template-columns: 1fr; }
.kaba-tech-item {
height: 100px;
flex-direction: row;
text-align: left;
padding: 15px 20px;
}
.kaba-tech-item img {
width: 45px; height: 45px;
margin-right: 20px; margin-bottom: 0;
}
}
MySQL
PostgreSQL
MongoDB
Cassandra
Microsoft SQL
/* Stack Container */
.kaba-tech-stack-database {
width: 100%;
margin: 40px 0;
padding: 50px 20px;
background: #fff;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, sans-serif;
display: flex;
flex-direction: column;
align-items: center;
}
/* Single Row Grid */
.kaba-tech-stack-grid-single-row {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(140px, 1fr));
gap: 20px;
width: 100%;
max-width: 1400px;
margin-bottom: 40px;
}
/* Tech Item Box */
.kaba-tech-item-database {
position: relative;
padding: 20px 10px;
height: 150px;
border-radius: 16px;
background: #fff;
text-align: center;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
cursor: pointer;
transition: all 0.3s ease;
box-shadow: 0 5px 15px rgba(0,0,0,0.05), 0 2px 5px rgba(0,0,0,0.03), inset 0 1px 0 rgba(255,255,255,0.9);
}
/* Top color bar by tech */
.kaba-tech-item-database::before {
content: ”;
position: absolute;
top: 0; left: 0; right: 0;
height: 4px;
border-radius: 16px 16px 0 0;
}
.kaba-tech-item-database[data-tech=”mysql”]::before { background: linear-gradient(90deg, #00758F, #F29111); }
.kaba-tech-item-database[data-tech=”postgresql”]::before { background: linear-gradient(90deg, #336791, #4A90D6); }
.kaba-tech-item-database[data-tech=”mongodb”]::before { background: linear-gradient(90deg, #47A248, #13AA52); }
.kaba-tech-item-database[data-tech=”cassandra”]::before { background: linear-gradient(90deg, #1287B8, #1C6EA4); }
.kaba-tech-item-database[data-tech=”mssql”]::before { background: linear-gradient(90deg, #CC2927, #A91E1D); }
/* Tech Images */
.kaba-tech-item-database img {
width: auto;
max-width: 120px;
height: 60px;
object-fit: contain;
margin-bottom: 15px;
transition: transform 0.3s ease;
}
/* Labels */
.kaba-tech-label-database {
font-size: 14px;
font-weight: 600;
color: #2d3748;
letter-spacing: 0.3px;
}
/* Hover Effects */
.kaba-tech-item-database:hover { transform: translateY(-5px); }
.kaba-tech-item-database:hover img { transform: scale(1.1); }
.kaba-tech-item-database:hover .kaba-tech-label-database { color: #1a202c; }
/* Button */
.kaba-explore-solutions-container { display: flex; justify-content: center; width: 100%; max-width: 1400px; }
.kaba-explore-solutions-btn {
display: inline-flex; align-items: center; gap: 10px;
padding: 14px 32px; background: linear-gradient(135deg,#667eea 0%,#764ba2 100%);
color: #fff; border-radius: 50px; font-weight: 600; font-size: 16px; text-decoration: none;
transition: all 0.3s ease; box-shadow: 0 8px 25px rgba(102,126,234,0.3); position: relative; overflow: hidden;
}
.kaba-explore-solutions-btn:hover { transform: translateY(-3px); background: linear-gradient(135deg,#5a6fd8 0%,#6a4190 100%); }
/* Responsive */
@media (max-width: 768px) {
.kaba-tech-item-database { height: 140px; padding: 15px 8px; }
.kaba-tech-item-database img { max-width: 100px; height: 50px; margin-bottom: 12px; }
.kaba-tech-label-database { font-size: 13px; }
}
@media (max-width: 480px) {
.kaba-tech-item-database { height: 120px; }
.kaba-tech-item-database img { max-width: 80px; height: 45px; }
.kaba-tech-label-database { font-size: 12px; }
}
AWS
Azure
Docker
GitHub
Git
Google Cloud
Jenkins
Kubernetes
.kaba-cloud-devops-simple {
width: 100%;
padding: 40px;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
font-family: -apple-system, BlinkMacSystemFont, ‘Segoe UI’, Roboto, sans-serif;
}
.kaba-cloud-devops-grid {
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 20px;
width: 100%;
max-width: 1400px;
margin-bottom: 30px;
}
.kaba-tech-item-simple {
flex: 0 1 120px; /* makes all items the same width */
padding: 20px;
text-align: center;
background: #fff;
border-radius: 12px;
display: flex;
flex-direction: column;
align-items: center;
transition: transform 0.3s, box-shadow 0.3s;
cursor: pointer;
}
.kaba-tech-item-simple img {
width: 60px; /* small/medium logo size */
height: 60px;
object-fit: contain;
margin-bottom: 10px;
transition: transform 0.3s;
}
.kaba-tech-item-simple:hover {
transform: translateY(-5px);
box-shadow: 0 8px 20px rgba(0,0,0,0.1);
}
.kaba-tech-item-simple:hover img {
transform: scale(1.1);
}
.kaba-tech-label-simple {
font-size: 14px;
font-weight: 600;
color: #2d3748;
}
.kaba-explore-solutions-container {
display: flex;
justify-content: center;
width: 100%;
}
.kaba-explore-solutions-btn {
padding: 12px 30px;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
color: #fff;
border-radius: 50px;
text-decoration: none;
font-weight: 600;
transition: transform 0.3s, box-shadow 0.3s;
}
.kaba-explore-solutions-btn:hover {
transform: translateY(-3px);
box-shadow: 0 8px 25px rgba(102, 126, 234, 0.3);
}
/* Responsive */
@media (max-width: 768px) {
.kaba-tech-item-simple {
flex: 0 1 100px;
}
.kaba-tech-item-simple img {
width: 50px;
height: 50px;
}
}
@media (max-width: 480px) {
.kaba-tech-item-simple {
flex: 0 1 80px;
padding: 10px;
}
.kaba-tech-item-simple img {
width: 40px;
height: 40px;
}
.kaba-tech-label-simple {
font-size: 12px;
}
}
.kaba-ecom-simple {
width: 100%;
padding: 60px 40px;
background: #fff;
display: flex;
flex-direction: column;
align-items: center;
}
/* ALWAYS 4 BOXES IN ONE ROW */
.kaba-ecom-grid-simple {
width: 100%;
max-width: 1400px;
margin: 0 auto 50px;
display: grid;
grid-template-columns: repeat(4, 1fr);
gap: clamp(20px, 3vw, 34px);
}
/* MOBILE — KEEP SINGLE ROW BY SCROLLING */
@media (max-width: 768px) {
.kaba-ecom-grid-simple {
overflow-x: auto;
padding-bottom: 10px;
-webkit-overflow-scrolling: touch;
display: grid;
grid-auto-flow: column;
grid-template-columns: repeat(4, 80%);
gap: 20px;
}
}
.kaba-tech-item-simple {
background: #fff;
border-radius: 18px;
height: 160px;
padding: 30px 20px;
text-align: center;
box-shadow:
0 5px 15px rgba(0, 0, 0, 0.05),
0 2px 5px rgba(0, 0, 0, 0.03),
inset 0 1px 0 rgba(255, 255, 255, 0.9);
transition: 0.3s ease;
position: relative;
cursor: pointer;
}
.kaba-tech-item-simple img {
width: 80px;
height: 80px;
margin-bottom: 20px;
transition: 0.3s ease;
}
.kaba-tech-item-simple:hover img {
transform: scale(1.1);
}
.kaba-explore-solutions-container {
text-align: center;
}
.kaba-explore-solutions-btn {
padding: 16px 36px;
border-radius: 50px;
color: white;
background: linear-gradient(135deg, #667eea, #764ba2);
font-size: 18px;
font-weight: 600;
text-decoration: none;
transition: 0.3s ease;
}
.kaba-explore-solutions-btn:hover {
transform: translateY(-3px);
background: linear-gradient(135deg, #5a6fd8, #6a4190);
}
-
Figma
-
Illustrator
-
InVision
-
Zeplin
-
Adobe XD
:root{
–bg: #ffffff;
–text: #2d3748;
–card-radius: 18px;
–card-height: 160px;
–max-width: 1400px;
/* slightly increased & consistent gap between boxes */
–gap: clamp(20px, 3vw, 36px);
–btn-grad: linear-gradient(135deg,#667eea 0%,#764ba2 100%);
–btn-grad-hover: linear-gradient(135deg,#5a6fd8 0%,#6a4190 100%);
–shadow-1: 0 5px 15px rgba(0,0,0,0.05);
–shadow-2: 0 2px 5px rgba(0,0,0,0.03);
–shadow-hover: 0 15px 30px rgba(0,0,0,0.1), 0 5px 15px rgba(0,0,0,0.05);
font-family: -apple-system,BlinkMacSystemFont,’Segoe UI’,Roboto,sans-serif;
}
/* global box-sizing for predictable spacing */
.kaba-uiux-simple, .kaba-uiux-simple * { box-sizing: border-box; }
.kaba-uiux-simple{
width:100%;
margin:40px 0;
padding:60px 40px;
background:var(–bg);
display:flex;
flex-direction:column;
align-items:center;
}
/* grid as a semantic list for accessibility */
.kaba-uiux-grid-simple{
width:100%;
max-width:var(–max-width);
margin:0 auto 50px;
display:grid;
grid-template-columns: repeat(auto-fit, minmax(180px, 1fr));
gap: var(–gap);
align-items: start;
list-style:none;
padding:0;
}
.kaba-tech-item-simple{
height:var(–card-height);
padding:30px 20px;
border-radius:var(–card-radius);
background:var(–bg);
text-align:center;
display:flex;
flex-direction:column;
justify-content:center;
align-items:center;
position:relative;
overflow:hidden;
transition:transform .3s ease, box-shadow .3s ease;
box-shadow: var(–shadow-1), var(–shadow-2), inset 0 1px 0 rgba(255,255,255,0.9);
cursor:pointer;
gap:0.25rem;
}
/* Top accent uses per-item variable (–accent) so we avoid repeating CSS */
.kaba-tech-item-simple::before{
content:”;
position:absolute;
top:0; left:0; right:0;
height:5px;
border-radius: var(–card-radius) var(–card-radius) 0 0;
background: var(–accent, linear-gradient(90deg,#ddd,#bbb));
z-index:1;
}
/* Hover sheen overlay */
.kaba-tech-item-simple::after{
content:”;
position:absolute;
inset:0;
border-radius:var(–card-radius);
padding:1px;
background:linear-gradient(135deg, rgba(255,255,255,0.8), rgba(255,255,255,0.2));
-webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
-webkit-mask-composite: xor;
mask-composite: exclude;
opacity:0;
transition:opacity .3s ease;
pointer-events:none;
}
.kaba-tech-item-simple img{
width:clamp(45px,9vw,80px);
height:clamp(45px,9vw,80px);
object-fit:contain;
margin-bottom:18px;
transition:transform .3s ease;
z-index:2;
display:block;
}
.kaba-tech-label-simple{
font-size:clamp(14px,1.05vw,16px);
font-weight:600;
color:var(–text);
letter-spacing:0.3px;
text-shadow:0 1px 2px rgba(255,255,255,0.8);
transition:color .3s ease;
z-index:2;
text-align:center;
}
.kaba-tech-item-simple:hover{
transform:translateY(-5px);
box-shadow:var(–shadow-hover), inset 0 1px 0 rgba(255,255,255,0.9);
}
.kaba-tech-item-simple:hover::after{ opacity:1; }
.kaba-tech-item-simple:hover img{ transform:scale(1.08); }
.kaba-tech-item-simple:hover .kaba-tech-label-simple{ color:#1a202c; }
/* Explore button */
.kaba-explore-solutions-container{
display:flex;
justify-content:center;
width:100%;
max-width:var(–max-width);
margin-top:20px;
}
.kaba-explore-solutions-btn{
display:inline-flex;
align-items:center;
gap:12px;
padding:16px 36px;
background:var(–btn-grad);
color:#fff;
border-radius:50px;
font-size:18px;
font-weight:600;
text-decoration:none;
transition:transform .3s ease, box-shadow .3s ease, background .3s ease;
box-shadow: 0 8px 25px rgba(102,126,234,0.3);
position:relative;
overflow:hidden;
}
.kaba-explore-solutions-btn:hover{
transform:translateY(-3px);
background:var(–btn-grad-hover);
box-shadow: 0 12px 30px rgba(102,126,234,0.4);
}
.kaba-explore-solutions-btn::after{
content:”;
position:absolute;
top:-50%; left:-50%;
width:200%; height:200%;
background: linear-gradient(to right, rgba(255,255,255,0) 0%, rgba(255,255,255,0.1) 50%, rgba(255,255,255,0) 100%);
transform:rotate(30deg);
transition:transform .6s;
}
.kaba-explore-solutions-btn:hover::after{ transform:rotate(30deg) translateX(100%); }
.kaba-arrow-icon{ transition:transform .3s ease; }
.kaba-explore-solutions-btn:hover .kaba-arrow-icon{ transform:translateX(5px); }
/* Responsive tuning */
@media (max-width: 1200px){
.kaba-uiux-simple{ padding:50px 30px; }
.kaba-tech-item-simple{ padding:25px 15px; height:150px; }
.kaba-uiux-grid-simple{ gap: clamp(16px, 3vw, 30px); }
}
@media (max-width: 768px){
.kaba-uiux-simple{ padding:35px 20px; margin:30px 0; }
.kaba-uiux-grid-simple{ grid-template-columns: repeat(2, 1fr); gap:18px; }
.kaba-tech-item-simple{ height:140px; padding:20px 15px; border-radius:16px; }
.kaba-tech-item-simple img{ margin-bottom:14px; }
}
@media (max-width: 360px){
.kaba-uiux-grid-simple{ grid-template-columns: 1fr; gap:12px; }
.kaba-tech-item-simple{ height:100px; flex-direction:row; align-items:center; text-align:left; padding:12px 14px; }
.kaba-tech-item-simple img{ width:45px; height:45px; margin-right:16px; margin-bottom:0; }
.kaba-tech-label-simple{ font-size:16px; margin-top:0; }
.kaba-explore-solutions-btn{ width:90%; max-width:280px; padding:10px 20px; font-size:14px; }
}