chore: change sidebar font size & style (#191)
* chore: change sidebar font size & style * chore: create font size style for sidebar
This commit is contained in:
		
							parent
							
								
									0f07812cc5
								
							
						
					
					
						commit
						4d0d1e8b95
					
				|  | @ -19,7 +19,7 @@ export const ClearConversations: FC<Props> = ({ onClearConversations }) => { | ||||||
| 
 | 
 | ||||||
|   return isConfirming ? ( |   return isConfirming ? ( | ||||||
|     <div className="flex w-full cursor-pointer items-center rounded-md py-3 px-3 hover:bg-[#343541]"> |     <div className="flex w-full cursor-pointer items-center rounded-md py-3 px-3 hover:bg-[#343541]"> | ||||||
|       <IconTrash size={16} /> |       <IconTrash size={18} /> | ||||||
| 
 | 
 | ||||||
|       <div className="ml-3 flex-1 text-left text-white"> |       <div className="ml-3 flex-1 text-left text-white"> | ||||||
|         {t('Are you sure?')} |         {t('Are you sure?')} | ||||||
|  | @ -48,7 +48,7 @@ export const ClearConversations: FC<Props> = ({ onClearConversations }) => { | ||||||
|   ) : ( |   ) : ( | ||||||
|     <SidebarButton |     <SidebarButton | ||||||
|       text={t('Clear conversations')} |       text={t('Clear conversations')} | ||||||
|       icon={<IconTrash size={16} />} |       icon={<IconTrash size={18} />} | ||||||
|       onClick={() => setIsConfirming(true)} |       onClick={() => setIsConfirming(true)} | ||||||
|     /> |     /> | ||||||
|   ); |   ); | ||||||
|  |  | ||||||
|  | @ -64,7 +64,7 @@ export const ConversationComponent: FC<Props> = ({ | ||||||
| 
 | 
 | ||||||
|   return ( |   return ( | ||||||
|     <button |     <button | ||||||
|       className={`flex w-full cursor-pointer items-center gap-3 rounded-lg p-3 text-sm transition-colors duration-200 hover:bg-[#343541]/90 ${ |       className={`flex w-full cursor-pointer items-center gap-3 rounded-lg p-3 text-sidebar transition-colors duration-200 hover:bg-[#343541]/90 ${ | ||||||
|         loading ? 'disabled:cursor-not-allowed' : '' |         loading ? 'disabled:cursor-not-allowed' : '' | ||||||
|       } ${ |       } ${ | ||||||
|         selectedConversation.id === conversation.id ? 'bg-[#343541]/90' : '' |         selectedConversation.id === conversation.id ? 'bg-[#343541]/90' : '' | ||||||
|  | @ -74,7 +74,7 @@ export const ConversationComponent: FC<Props> = ({ | ||||||
|       draggable="true" |       draggable="true" | ||||||
|       onDragStart={(e) => handleDragStart(e, conversation)} |       onDragStart={(e) => handleDragStart(e, conversation)} | ||||||
|     > |     > | ||||||
|       <IconMessage size={16} /> |       <IconMessage size={18} /> | ||||||
| 
 | 
 | ||||||
|       {isRenaming && selectedConversation.id === conversation.id ? ( |       {isRenaming && selectedConversation.id === conversation.id ? ( | ||||||
|         <input |         <input | ||||||
|  |  | ||||||
|  | @ -100,7 +100,7 @@ export const Folder: FC<Props> = ({ | ||||||
|   return ( |   return ( | ||||||
|     <div> |     <div> | ||||||
|       <div |       <div | ||||||
|         className={`mb-1 flex cursor-pointer items-center gap-3 rounded-lg px-3 py-2 text-sm transition-colors duration-200 hover:bg-[#343541]/90`} |         className={`mb-1 flex cursor-pointer items-center gap-3 rounded-lg px-3 py-2 text-sidebar transition-colors duration-200 hover:bg-[#343541]/90`} | ||||||
|         onClick={() => setIsOpen(!isOpen)} |         onClick={() => setIsOpen(!isOpen)} | ||||||
|         onDrop={(e) => handleDrop(e, currentFolder)} |         onDrop={(e) => handleDrop(e, currentFolder)} | ||||||
|         onDragOver={allowDrop} |         onDragOver={allowDrop} | ||||||
|  |  | ||||||
|  | @ -42,7 +42,7 @@ export const Import: FC<Props> = ({ onImport }) => { | ||||||
| 
 | 
 | ||||||
|       <SidebarButton |       <SidebarButton | ||||||
|         text={t('Import conversations')} |         text={t('Import conversations')} | ||||||
|         icon={<IconFileImport size={16} />} |         icon={<IconFileImport size={18} />} | ||||||
|         onClick={() => { |         onClick={() => { | ||||||
|           const importFile = document.querySelector( |           const importFile = document.querySelector( | ||||||
|             '#import-file', |             '#import-file', | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ export const Key: FC<Props> = ({ apiKey, onApiKeyChange }) => { | ||||||
| 
 | 
 | ||||||
|   return isChanging ? ( |   return isChanging ? ( | ||||||
|     <div className="duration:200 flex w-full cursor-pointer items-center rounded-md py-3 px-3 transition-colors hover:bg-gray-500/10"> |     <div className="duration:200 flex w-full cursor-pointer items-center rounded-md py-3 px-3 transition-colors hover:bg-gray-500/10"> | ||||||
|       <IconKey size={16} /> |       <IconKey size={18} /> | ||||||
| 
 | 
 | ||||||
|       <input |       <input | ||||||
|         className="ml-2 h-[20px] flex-1 overflow-hidden overflow-ellipsis border-b border-neutral-400 bg-transparent pr-1 text-left text-white outline-none focus:border-neutral-100" |         className="ml-2 h-[20px] flex-1 overflow-hidden overflow-ellipsis border-b border-neutral-400 bg-transparent pr-1 text-left text-white outline-none focus:border-neutral-100" | ||||||
|  | @ -61,7 +61,7 @@ export const Key: FC<Props> = ({ apiKey, onApiKeyChange }) => { | ||||||
|   ) : ( |   ) : ( | ||||||
|     <SidebarButton |     <SidebarButton | ||||||
|       text={t('OpenAI API Key')} |       text={t('OpenAI API Key')} | ||||||
|       icon={<IconKey size={16} />} |       icon={<IconKey size={18} />} | ||||||
|       onClick={() => setIsChanging(true)} |       onClick={() => setIsChanging(true)} | ||||||
|     /> |     /> | ||||||
|   ); |   ); | ||||||
|  |  | ||||||
|  | @ -21,7 +21,7 @@ export const Search: FC<Props> = ({ searchTerm, onSearch }) => { | ||||||
|   return ( |   return ( | ||||||
|     <div className="relative flex items-center"> |     <div className="relative flex items-center"> | ||||||
|       <input |       <input | ||||||
|         className="w-full flex-1 rounded-md border border-neutral-600 bg-[#202123] px-4 py-3 pr-10 text-sm text-white" |         className="w-full flex-1 rounded-md border border-neutral-600 bg-[#202123] px-4 py-3 pr-10 text-sidebar text-white" | ||||||
|         type="text" |         type="text" | ||||||
|         placeholder={t('Search conversations...') || ''} |         placeholder={t('Search conversations...') || ''} | ||||||
|         value={searchTerm} |         value={searchTerm} | ||||||
|  | @ -31,7 +31,7 @@ export const Search: FC<Props> = ({ searchTerm, onSearch }) => { | ||||||
|       {searchTerm && ( |       {searchTerm && ( | ||||||
|         <IconX |         <IconX | ||||||
|           className="absolute right-4 cursor-pointer text-neutral-300 hover:text-neutral-400" |           className="absolute right-4 cursor-pointer text-neutral-300 hover:text-neutral-400" | ||||||
|           size={24} |           size={18} | ||||||
|           onClick={clearSearch} |           onClick={clearSearch} | ||||||
|         /> |         /> | ||||||
|       )} |       )} | ||||||
|  |  | ||||||
|  | @ -2,6 +2,7 @@ import { ChatFolder, Conversation, KeyValuePair } from '@/types'; | ||||||
| import { | import { | ||||||
|   IconArrowBarLeft, |   IconArrowBarLeft, | ||||||
|   IconFolderPlus, |   IconFolderPlus, | ||||||
|  |   IconMessagesOff, | ||||||
|   IconPlus, |   IconPlus, | ||||||
| } from '@tabler/icons-react'; | } from '@tabler/icons-react'; | ||||||
| import { FC, useEffect, useState } from 'react'; | import { FC, useEffect, useState } from 'react'; | ||||||
|  | @ -121,21 +122,21 @@ export const Sidebar: FC<Props> = ({ | ||||||
|     > |     > | ||||||
|       <header className="flex items-center"> |       <header className="flex items-center"> | ||||||
|         <button |         <button | ||||||
|           className="flex w-[190px] flex-shrink-0 cursor-pointer items-center gap-3 rounded-md border border-white/20 p-3 text-sm text-white transition-colors duration-200 hover:bg-gray-500/10" |           className="flex w-[190px] flex-shrink-0 cursor-pointer items-center gap-3 rounded-md border border-white/20 p-3 text-sidebar text-white transition-colors duration-200 select-none hover:bg-gray-500/10" | ||||||
|           onClick={() => { |           onClick={() => { | ||||||
|             onNewConversation(); |             onNewConversation(); | ||||||
|             setSearchTerm(''); |             setSearchTerm(''); | ||||||
|           }} |           }} | ||||||
|         > |         > | ||||||
|           <IconPlus size={16} /> |           <IconPlus size={18} /> | ||||||
|           {t('New chat')} |           {t('New chat')} | ||||||
|         </button> |         </button> | ||||||
| 
 | 
 | ||||||
|         <button |         <button | ||||||
|           className="ml-2 flex flex-shrink-0 cursor-pointer items-center gap-3 rounded-md border border-white/20 p-3 text-sm text-white transition-colors duration-200 hover:bg-gray-500/10" |           className="ml-2 flex flex-shrink-0 cursor-pointer items-center gap-3 rounded-md border border-white/20 p-3 text-sidebar text-white transition-colors duration-200 hover:bg-gray-500/10" | ||||||
|           onClick={() => onCreateFolder(t('New folder'))} |           onClick={() => onCreateFolder(t('New folder'))} | ||||||
|         > |         > | ||||||
|           <IconFolderPlus size={16} /> |           <IconFolderPlus size={18} /> | ||||||
|         </button> |         </button> | ||||||
| 
 | 
 | ||||||
|         <IconArrowBarLeft |         <IconArrowBarLeft | ||||||
|  | @ -191,8 +192,9 @@ export const Sidebar: FC<Props> = ({ | ||||||
|             /> |             /> | ||||||
|           </div> |           </div> | ||||||
|         ) : ( |         ) : ( | ||||||
|           <div className="mt-4 text-center text-white"> |           <div className="mt-8 text-white text-center opacity-50 select-none"> | ||||||
|             <div>{t('No conversations.')}</div> |             <IconMessagesOff className='mx-auto mb-3'/> | ||||||
|  |             <span className='text-sidebar'>{t('No conversations.')}</span> | ||||||
|           </div> |           </div> | ||||||
|         )} |         )} | ||||||
|       </div> |       </div> | ||||||
|  |  | ||||||
|  | @ -9,7 +9,7 @@ interface Props { | ||||||
| export const SidebarButton: FC<Props> = ({ text, icon, onClick }) => { | export const SidebarButton: FC<Props> = ({ text, icon, onClick }) => { | ||||||
|   return ( |   return ( | ||||||
|     <button |     <button | ||||||
|       className="flex w-full cursor-pointer items-center gap-3 rounded-md py-3 px-3 text-white transition-colors duration-200 hover:bg-gray-500/10" |       className="flex w-full cursor-pointer items-center gap-3 rounded-md py-3 px-3 text-white text-sidebar transition-colors duration-200 hover:bg-gray-500/10 select-none" | ||||||
|       onClick={onClick} |       onClick={onClick} | ||||||
|     > |     > | ||||||
|       <div>{icon}</div> |       <div>{icon}</div> | ||||||
|  |  | ||||||
|  | @ -38,14 +38,14 @@ export const SidebarSettings: FC<Props> = ({ | ||||||
| 
 | 
 | ||||||
|       <SidebarButton |       <SidebarButton | ||||||
|         text={t('Export conversations')} |         text={t('Export conversations')} | ||||||
|         icon={<IconFileExport size={16} />} |         icon={<IconFileExport size={18} />} | ||||||
|         onClick={() => onExportConversations()} |         onClick={() => onExportConversations()} | ||||||
|       /> |       /> | ||||||
| 
 | 
 | ||||||
|       <SidebarButton |       <SidebarButton | ||||||
|         text={lightMode === 'light' ? t('Dark mode') : t('Light mode')} |         text={lightMode === 'light' ? t('Dark mode') : t('Light mode')} | ||||||
|         icon={ |         icon={ | ||||||
|           lightMode === 'light' ? <IconMoon size={16} /> : <IconSun size={16} /> |           lightMode === 'light' ? <IconMoon size={18} /> : <IconSun size={18} /> | ||||||
|         } |         } | ||||||
|         onClick={() => |         onClick={() => | ||||||
|           onToggleLightMode(lightMode === 'light' ? 'dark' : 'light') |           onToggleLightMode(lightMode === 'light' ? 'dark' : 'light') | ||||||
|  |  | ||||||
|  | @ -7,6 +7,9 @@ module.exports = { | ||||||
|   ], |   ], | ||||||
|   darkMode: 'class', |   darkMode: 'class', | ||||||
|   theme: { |   theme: { | ||||||
|  |     fontSize: { | ||||||
|  |       sidebar: ['13px', '18px'] | ||||||
|  |     }, | ||||||
|     extend: {}, |     extend: {}, | ||||||
|   }, |   }, | ||||||
|   plugins: [require('@tailwindcss/typography')], |   plugins: [require('@tailwindcss/typography')], | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue