diff --git a/src/uncloseai-modal-builtin.css b/src/uncloseai-modal-builtin.css index 8066d58..7f3833e 100644 --- a/src/uncloseai-modal-builtin.css +++ b/src/uncloseai-modal-builtin.css @@ -49,19 +49,18 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { .uncloseai-modal-container { width: 100%; height: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: auto 1fr auto auto; overflow: hidden; } /* Header */ .uncloseai-modal-header { - flex-shrink: 0; padding: 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } @@ -76,9 +75,8 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { height: 36px; border-radius: 50%; cursor: pointer; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; transition: background 0.2s; margin-right: 8px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); @@ -90,7 +88,6 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Chat area */ .uncloseai-modal-chat-area { - flex: 1; overflow-y: auto; padding: 16px; -webkit-overflow-scrolling: touch; @@ -122,11 +119,11 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Controls */ .uncloseai-modal-controls { - flex-shrink: 0; padding: 8px 16px; border-top: 1px solid rgba(0, 0, 0, 0.1); border-bottom: 1px solid rgba(0, 0, 0, 0.1); - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; @@ -134,17 +131,16 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Input area */ .uncloseai-modal-input-area { - flex-shrink: 0; padding: 16px; - display: flex; + display: grid; + grid-template-columns: 1fr auto; gap: 12px; - align-items: flex-end; + align-items: end; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); } /* Input field */ .uncloseai-modal-input { - flex: 1; min-height: 44px; max-height: 120px; padding: 12px; @@ -174,11 +170,9 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { cursor: pointer; font-size: 20px; font-weight: bold; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; transition: transform 0.2s; - flex-shrink: 0; } .uncloseai-modal-send-btn:hover { @@ -188,13 +182,13 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Chat messages */ .uncloseai-chat-box { max-width: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 12px; } .user-message { - align-self: flex-end; + justify-self: end; background: #007bff; color: white; padding: 12px 16px; @@ -204,7 +198,7 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { } .ai-message { - align-self: flex-start; + justify-self: start; background: white; color: #495057; padding: 12px 16px; @@ -250,8 +244,8 @@ dialog#translate-modal { color: white; padding: 16px 20px; margin: -1em -1em 1em -1em; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; } @@ -269,9 +263,8 @@ dialog#translate-modal { padding: 0; width: 30px; height: 30px; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; } .translate-modal-header .close-btn:hover { @@ -281,11 +274,12 @@ dialog#translate-modal { /* Tab navigation */ .translate-tab-nav { list-style: none; - display: flex; + display: grid; + grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-bottom: 2px solid #e9ecef; - gap: 0; + gap: 2px; margin-bottom: 20px; } @@ -371,7 +365,6 @@ dialog#translate-modal { } .translate-tab-nav li { - flex: 1; margin: 0; } @@ -488,8 +481,8 @@ dialog#tts-modal { background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; } @@ -507,22 +500,20 @@ dialog#tts-modal { padding: 0; width: 30px; height: 30px; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; } /* TTS content container */ .tts-modal-content { padding: 20px; overflow-y: auto; - flex: 1; } /* TTS modal article */ .tts-modal-article { - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; height: 100%; overflow: hidden; } @@ -568,14 +559,15 @@ dialog#tts-modal { /* Voice selection */ .tts-voice-container { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 16px 0; } .tts-voice-label { - display: flex; + display: grid; + grid-template-columns: auto 1fr; align-items: center; gap: 5px; cursor: pointer; @@ -584,7 +576,8 @@ dialog#tts-modal { /* Speed control */ .tts-speed-control { margin: 16px 0; - display: flex; + display: grid; + grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; } @@ -607,7 +600,8 @@ dialog#tts-modal { /* Audio controls */ .tts-audio-controls { - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); align-items: center; gap: 12px; padding: 12px; @@ -633,7 +627,6 @@ dialog#tts-modal { } .tts-progress-container { - flex: 1; height: 6px; background: #e0e0e0; border-radius: 3px; @@ -655,13 +648,14 @@ dialog#tts-modal { /* Container Classes */ .uncloseai-flex-container { - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 12px; } .uncloseai-flex-row { - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(auto, max-content)); align-items: center; gap: 8px; } @@ -735,9 +729,8 @@ dialog#tts-modal { border: none; color: white; cursor: pointer; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; font-size: 18px; transition: background 0.2s; } @@ -769,9 +762,8 @@ dialog#tts-modal { } .uncloseai-title-container { - flex: 1; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 4px; } @@ -799,10 +791,11 @@ dialog#tts-modal { /* Message action buttons */ .uncloseai-message-actions { margin-top: 8px; - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(auto, max-content)); gap: 8px; opacity: 0.8; - justify-content: flex-end; + justify-content: end; } /* =================================================================== */ @@ -813,18 +806,17 @@ dialog#tts-modal { .uncloseai-modal-container { width: 100%; height: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; overflow: hidden; } .uncloseai-modal-header { - flex-shrink: 0; padding: 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } @@ -855,7 +847,6 @@ dialog#tts-modal { /* Chat area */ .uncloseai-modal-chat-area { - flex: 1; overflow-y: auto; padding: 16px; -webkit-overflow-scrolling: touch; @@ -864,8 +855,8 @@ dialog#tts-modal { .uncloseai-chat-box { max-width: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 12px; } @@ -905,11 +896,11 @@ dialog#tts-modal { /* Action grid and controls */ .uncloseai-modal-controls { - flex-shrink: 0; padding: 8px 16px; border-top: 1px solid rgba(0, 0, 0, 0.1); border-bottom: 1px solid rgba(0, 0, 0, 0.1); - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; @@ -917,17 +908,16 @@ dialog#tts-modal { /* Input area */ .uncloseai-modal-input-area { - flex-shrink: 0; padding: 16px; - display: flex; + display: grid; + grid-template-columns: 1fr auto; gap: 12px; - align-items: flex-end; + align-items: end; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); } /* Chat input */ .uncloseai-modal-input { - flex: 1; min-height: 44px; max-height: 120px; padding: 12px; @@ -959,11 +949,9 @@ dialog#tts-modal { cursor: pointer; font-size: 20px; font-weight: bold; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; transition: transform 0.2s; - flex-shrink: 0; } .uncloseai-modal-send-btn:hover { @@ -972,7 +960,7 @@ dialog#tts-modal { /* Messages */ .user-message { - align-self: flex-end; + justify-self: end; background: rgba(0, 123, 255, 0.95); color: white; padding: 12px 16px; @@ -982,7 +970,7 @@ dialog#tts-modal { } .ai-message { - align-self: flex-start; + justify-self: start; background: rgba(255, 255, 255, 0.95); color: #495057; padding: 12px 16px; @@ -1152,13 +1140,13 @@ dialog#uncloseai-embedded-modal[data-theme="dark"] .user-message { } .widget-input-container { - display: flex; + display: grid; + grid-template-columns: 1fr auto; gap: 10px; margin-bottom: 10px; } .widget-input-field { - flex: 1; padding: 8px; border: 1px solid #ccc; border-radius: 4px; diff --git a/src/uncloseai-modal-pico.css b/src/uncloseai-modal-pico.css index 51af0be..ce4fe8a 100644 --- a/src/uncloseai-modal-pico.css +++ b/src/uncloseai-modal-pico.css @@ -65,19 +65,18 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { .uncloseai-modal-container { width: 100%; height: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: auto 1fr auto auto; overflow: hidden; } /* Header */ .uncloseai-modal-header { - flex-shrink: 0; padding: 16px; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%); color: white; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1); } @@ -92,9 +91,8 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { height: 36px; border-radius: 50%; cursor: pointer; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; transition: background 0.2s; margin-right: 8px; text-shadow: 0 1px 2px rgba(0, 0, 0, 0.5); @@ -106,7 +104,6 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Chat area */ .uncloseai-modal-chat-area { - flex: 1; overflow-y: auto; padding: 16px; -webkit-overflow-scrolling: touch; @@ -137,11 +134,11 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Controls */ .uncloseai-modal-controls { - flex-shrink: 0; padding: 8px 16px; border-top: 1px solid rgba(0, 0, 0, 0.1); border-bottom: 1px solid rgba(0, 0, 0, 0.1); - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)); gap: 8px; overflow-x: auto; -webkit-overflow-scrolling: touch; @@ -149,17 +146,16 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Input area */ .uncloseai-modal-input-area { - flex-shrink: 0; padding: 16px; - display: flex; + display: grid; + grid-template-columns: 1fr auto; gap: 12px; - align-items: flex-end; + align-items: end; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1); } /* Input field */ .uncloseai-modal-input { - flex: 1; min-height: 44px; max-height: 120px; padding: 12px; @@ -189,11 +185,9 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { cursor: pointer; font-size: 20px; font-weight: bold; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; transition: transform 0.2s; - flex-shrink: 0; } .uncloseai-modal-send-btn:hover { @@ -203,13 +197,13 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { /* Chat messages */ .uncloseai-chat-box { max-width: 100%; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 12px; } .user-message { - align-self: flex-end; + justify-self: end; background: #007bff; color: white; padding: 12px 16px; @@ -219,7 +213,7 @@ dialog#uncloseai-embedded-modal[data-theme="light"] { } .ai-message { - align-self: flex-start; + justify-self: start; background: white; color: #495057; padding: 12px 16px; @@ -281,8 +275,8 @@ dialog#translate-modal { color: white; padding: 16px 20px; margin: -1em -1em 1em -1em; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; } @@ -300,9 +294,8 @@ dialog#translate-modal { padding: 0; width: 30px; height: 30px; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; } .translate-modal-header .close-btn:hover { @@ -312,11 +305,12 @@ dialog#translate-modal { /* Tab navigation */ .translate-tab-nav { list-style: none; - display: flex; + display: grid; + grid-template-columns: 1fr 1fr; margin: 0; padding: 0; border-bottom: 2px solid #e9ecef; - gap: 0; + gap: 2px; margin-bottom: 20px; } @@ -402,7 +396,6 @@ dialog#translate-modal { } .translate-tab-nav li { - flex: 1; margin: 0; } @@ -538,8 +531,8 @@ dialog#tts-modal { background: linear-gradient(45deg, #667eea 0%, #764ba2 100%); color: white; padding: 20px; - display: flex; - justify-content: space-between; + display: grid; + grid-template-columns: 1fr auto; align-items: center; } @@ -557,22 +550,20 @@ dialog#tts-modal { padding: 0; width: 30px; height: 30px; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; } /* TTS content container */ .tts-modal-content { padding: 20px; overflow-y: auto; - flex: 1; } /* TTS modal article */ .tts-modal-article { - display: flex; - flex-direction: column; + display: grid; + grid-template-rows: auto 1fr auto; height: 100%; overflow: hidden; } @@ -618,14 +609,15 @@ dialog#tts-modal { /* Voice selection */ .tts-voice-container { - display: flex; - flex-wrap: wrap; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: 10px; margin: 16px 0; } .tts-voice-label { - display: flex; + display: grid; + grid-template-columns: auto 1fr; align-items: center; gap: 5px; cursor: pointer; @@ -634,7 +626,8 @@ dialog#tts-modal { /* Speed control */ .tts-speed-control { margin: 16px 0; - display: flex; + display: grid; + grid-template-columns: auto 1fr auto; align-items: center; gap: 10px; } @@ -657,7 +650,8 @@ dialog#tts-modal { /* Audio controls */ .tts-audio-controls { - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(100px, 1fr)); align-items: center; gap: 12px; padding: 12px; @@ -683,7 +677,6 @@ dialog#tts-modal { } .tts-progress-container { - flex: 1; height: 6px; background: #e0e0e0; border-radius: 3px; @@ -705,13 +698,14 @@ dialog#tts-modal { /* Container Classes */ .uncloseai-flex-container { - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 12px; } .uncloseai-flex-row { - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(auto, max-content)); align-items: center; gap: 8px; } @@ -785,9 +779,8 @@ dialog#tts-modal { border: none; color: white; cursor: pointer; - display: flex; - align-items: center; - justify-content: center; + display: grid; + place-items: center; font-size: 18px; transition: background 0.2s; } @@ -819,9 +812,8 @@ dialog#tts-modal { } .uncloseai-title-container { - flex: 1; - display: flex; - flex-direction: column; + display: grid; + grid-template-columns: 1fr; gap: 4px; } @@ -849,10 +841,11 @@ dialog#tts-modal { /* Message action buttons */ .uncloseai-message-actions { margin-top: 8px; - display: flex; + display: grid; + grid-template-columns: repeat(auto-fit, minmax(auto, max-content)); gap: 8px; opacity: 0.8; - justify-content: flex-end; + justify-content: end; } /* =================================================================== */ @@ -863,18 +856,17 @@ dialog#tts-modal { .uncloseai-modal-container { width: 100% !important; height: 100% !important; - display: flex !important; - flex-direction: column !important; + display: grid !important; + grid-template-rows: auto 1fr auto auto !important; overflow: hidden !important; } .uncloseai-modal-header { - flex-shrink: 0 !important; padding: 16px !important; background: linear-gradient(135deg, #667eea 0%, #764ba2 100%) !important; color: white !important; - display: flex !important; - justify-content: space-between !important; + display: grid !important; + grid-template-columns: 1fr auto !important; align-items: center !important; box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1) !important; } @@ -905,7 +897,6 @@ dialog#tts-modal { /* Chat area */ .uncloseai-modal-chat-area { - flex: 1 !important; overflow-y: auto !important; padding: 16px !important; -webkit-overflow-scrolling: touch !important; @@ -913,14 +904,13 @@ dialog#tts-modal { .uncloseai-chat-box { max-width: 100% !important; - display: flex !important; - flex-direction: column !important; + display: grid !important; + grid-template-columns: 1fr !important; gap: 12px !important; } /* Settings panel */ .uncloseai-modal-settings { - flex-shrink: 0 !important; border-top: 1px solid rgba(0, 0, 0, 0.1) !important; border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; padding: 16px !important; @@ -946,11 +936,11 @@ dialog#tts-modal { /* Action grid and controls */ .uncloseai-modal-controls { - flex-shrink: 0 !important; padding: 8px 16px !important; border-top: 1px solid rgba(0, 0, 0, 0.1) !important; border-bottom: 1px solid rgba(0, 0, 0, 0.1) !important; - display: flex !important; + display: grid !important; + grid-template-columns: repeat(auto-fit, minmax(120px, 1fr)) !important; gap: 8px !important; overflow-x: auto !important; -webkit-overflow-scrolling: touch !important; @@ -958,17 +948,16 @@ dialog#tts-modal { /* Input area */ .uncloseai-modal-input-area { - flex-shrink: 0 !important; padding: 16px !important; - display: flex !important; + display: grid !important; + grid-template-columns: 1fr auto !important; gap: 12px !important; - align-items: flex-end !important; + align-items: end !important; box-shadow: 0 -2px 10px rgba(0, 0, 0, 0.1) !important; } /* Chat input */ .uncloseai-modal-input { - flex: 1 !important; min-height: 44px !important; max-height: 120px !important; padding: 12px !important; @@ -1000,11 +989,9 @@ dialog#tts-modal { cursor: pointer !important; font-size: 20px !important; font-weight: bold !important; - display: flex !important; - align-items: center !important; - justify-content: center !important; + display: grid !important; + place-items: center !important; transition: transform 0.2s !important; - flex-shrink: 0 !important; } .uncloseai-modal-send-btn:hover { @@ -1013,7 +1000,7 @@ dialog#tts-modal { /* Messages */ .user-message { - align-self: flex-end !important; + justify-self: end !important; background: rgba(0, 123, 255, 0.95) !important; color: white !important; padding: 12px 16px !important; @@ -1023,7 +1010,7 @@ dialog#tts-modal { } .ai-message { - align-self: flex-start !important; + justify-self: start !important; background: rgba(255, 255, 255, 0.95) !important; color: #495057 !important; padding: 12px 16px !important; @@ -1193,13 +1180,13 @@ dialog#uncloseai-embedded-modal[data-theme="dark"] .user-message { } .widget-input-container { - display: flex; + display: grid; + grid-template-columns: 1fr auto; gap: 10px; margin-bottom: 10px; } .widget-input-field { - flex: 1; padding: 8px; border: 1px solid #ccc; border-radius: 4px;