Initial commit: Telegram Management System
Some checks failed
Deploy / deploy (push) Has been cancelled
Some checks failed
Deploy / deploy (push) Has been cancelled
Full-stack web application for Telegram management - Frontend: Vue 3 + Vben Admin - Backend: NestJS - Features: User management, group broadcast, statistics 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
192
marketing-agent/frontend/src/styles/mobile.css
Normal file
192
marketing-agent/frontend/src/styles/mobile.css
Normal file
@@ -0,0 +1,192 @@
|
||||
/* Mobile-specific styles for Marketing Agent System */
|
||||
|
||||
/* Ensure full height on mobile browsers */
|
||||
.h-full {
|
||||
height: 100vh;
|
||||
height: -webkit-fill-available;
|
||||
}
|
||||
|
||||
/* Fix iOS Safari bottom bar issue */
|
||||
.pb-safe {
|
||||
padding-bottom: env(safe-area-inset-bottom);
|
||||
}
|
||||
|
||||
/* Mobile-optimized form elements */
|
||||
@media (max-width: 768px) {
|
||||
/* Larger touch targets */
|
||||
.el-button {
|
||||
min-height: 44px;
|
||||
}
|
||||
|
||||
.el-input__inner {
|
||||
height: 44px !important;
|
||||
font-size: 16px !important; /* Prevent zoom on iOS */
|
||||
}
|
||||
|
||||
.el-select .el-input__inner {
|
||||
height: 44px !important;
|
||||
}
|
||||
|
||||
/* Better spacing for mobile */
|
||||
.el-form-item {
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
/* Mobile-friendly tables */
|
||||
.el-table {
|
||||
font-size: 14px;
|
||||
}
|
||||
|
||||
.el-table .cell {
|
||||
padding: 8px 10px;
|
||||
}
|
||||
|
||||
/* Responsive cards */
|
||||
.el-card {
|
||||
margin-bottom: 12px;
|
||||
}
|
||||
|
||||
.el-card__body {
|
||||
padding: 12px;
|
||||
}
|
||||
|
||||
/* Mobile dialogs */
|
||||
.el-dialog {
|
||||
width: 90% !important;
|
||||
margin-top: 10vh !important;
|
||||
}
|
||||
|
||||
.el-dialog__body {
|
||||
padding: 15px;
|
||||
}
|
||||
|
||||
/* Mobile message boxes */
|
||||
.el-message-box {
|
||||
width: 80%;
|
||||
}
|
||||
|
||||
/* Mobile dropdowns */
|
||||
.el-dropdown-menu {
|
||||
min-width: 150px;
|
||||
}
|
||||
|
||||
/* Bottom navigation spacing */
|
||||
.pb-20 {
|
||||
padding-bottom: 5rem;
|
||||
}
|
||||
}
|
||||
|
||||
/* Smooth scrolling */
|
||||
.scroll-smooth {
|
||||
-webkit-overflow-scrolling: touch;
|
||||
scroll-behavior: smooth;
|
||||
}
|
||||
|
||||
/* Prevent text selection on interactive elements */
|
||||
.no-select {
|
||||
-webkit-user-select: none;
|
||||
-moz-user-select: none;
|
||||
-ms-user-select: none;
|
||||
user-select: none;
|
||||
}
|
||||
|
||||
/* Mobile tap highlight */
|
||||
.tap-highlight {
|
||||
-webkit-tap-highlight-color: rgba(0, 0, 0, 0.1);
|
||||
}
|
||||
|
||||
/* Loading states */
|
||||
.skeleton {
|
||||
background: linear-gradient(90deg, #f0f0f0 25%, #e0e0e0 50%, #f0f0f0 75%);
|
||||
background-size: 200% 100%;
|
||||
animation: loading 1.5s infinite;
|
||||
}
|
||||
|
||||
@keyframes loading {
|
||||
0% {
|
||||
background-position: 200% 0;
|
||||
}
|
||||
100% {
|
||||
background-position: -200% 0;
|
||||
}
|
||||
}
|
||||
|
||||
/* Pull to refresh indicator */
|
||||
.pull-to-refresh {
|
||||
position: absolute;
|
||||
top: -50px;
|
||||
left: 50%;
|
||||
transform: translateX(-50%);
|
||||
width: 40px;
|
||||
height: 40px;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
transition: top 0.3s;
|
||||
}
|
||||
|
||||
.pull-to-refresh.active {
|
||||
top: 10px;
|
||||
}
|
||||
|
||||
/* Mobile-optimized animations */
|
||||
@media (prefers-reduced-motion: reduce) {
|
||||
* {
|
||||
animation-duration: 0.01ms !important;
|
||||
animation-iteration-count: 1 !important;
|
||||
transition-duration: 0.01ms !important;
|
||||
}
|
||||
}
|
||||
|
||||
/* Swipe actions */
|
||||
.swipe-action {
|
||||
position: relative;
|
||||
overflow: hidden;
|
||||
touch-action: pan-y;
|
||||
}
|
||||
|
||||
.swipe-action-content {
|
||||
position: relative;
|
||||
background: white;
|
||||
z-index: 2;
|
||||
transition: transform 0.3s;
|
||||
}
|
||||
|
||||
.swipe-action-buttons {
|
||||
position: absolute;
|
||||
top: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
}
|
||||
|
||||
/* Mobile-friendly tooltips */
|
||||
@media (max-width: 768px) {
|
||||
.el-tooltip__popper {
|
||||
max-width: 250px;
|
||||
font-size: 12px;
|
||||
}
|
||||
}
|
||||
|
||||
/* Responsive images */
|
||||
.responsive-img {
|
||||
max-width: 100%;
|
||||
height: auto;
|
||||
display: block;
|
||||
}
|
||||
|
||||
/* Mobile grid adjustments */
|
||||
@media (max-width: 640px) {
|
||||
.grid-cols-2 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-cols-3 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
|
||||
.grid-cols-4 {
|
||||
grid-template-columns: repeat(2, minmax(0, 1fr));
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user