YourHana responsive + customizations

YourHana website is more suitable for wide screens.

  1. /* ==UserStyle==
  2. @name YourHana responsive + customizations
  3. @version 1.1.1
  4. @description YourHana website is more suitable for wide screens.
  5. @author BreatFR (https://breat.fr)
  6. @namespace https://gitlab.com/breatfr
  7. @homepageURL https://gitlab.com/breatfr/yourhana
  8. @supportURL https://discord.gg/Q8KSHzdBxs
  9. @license AGPL-3.0-or-later; https://www.gnu.org/licenses/agpl-3.0.txt
  10. @preprocessor stylus
  11.  
  12. @var checkbox blurcontent "Blur content" 0
  13. @var checkbox darkmode "Dark mode" 1
  14. @var checkbox thinscrollbar "Thin scrollbar" 1
  15. @var checkbox widemode "Wide mode" 1
  16. ==/UserStyle== */
  17.  
  18. /* === Credits ===
  19. Website https://breat.fr
  20. facebook https://www.facebook.com/breatfroff
  21. mastodon https://mastodon.social/@breat_fr
  22. telegram https://t.me/breatfr
  23. vk https://vk.com/breatfroff
  24. X (twitter) https://x.com/breatfroff
  25. === Credits === */
  26.  
  27. @-moz-document domain("yourhana.ai") {
  28. :root {
  29. --themeversion: 'Theme v1.1.1';
  30. --author: 'by BreatFR';
  31. --link: ' gitlab.com/breatfr/yourhana ';
  32. }
  33.  
  34. .min-h-screen.bg-gray-100.flex.flex-col > nav > div.max-w-7xl.mx-auto.px-4.sm\\:px-6.lg\\:px-8 > div > div:nth-child(1)::after {
  35. background: linear-gradient(88.55deg, rgb(139, 109, 255) 22.43%, rgb(254, 132, 132) 92.28%);
  36. background-clip: text;
  37. -webkit-background-clip: text;
  38. color: transparent;
  39. content: var(--themeversion) ' · ' var(--author) '\A' url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBoZWlnaHQ9IjIwIiB3aWR0aD0iMjAiIHN0eWxlPSJ0cmFuc2Zvcm06IHNjYWxlWSgtMSk7Ij48IS0tIUZvbnQgQXdlc29tZSBGcmVlIDYuNS4xIGJ5IEBmb250YXdlc29tZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tIExpY2Vuc2UgLSBodHRwczovL2ZvbnRhd2Vzb21lLmNvbS9saWNlbnNlL2ZyZWUgQ29weXJpZ2h0IDIwMjQgRm9udGljb25zLCBJbmMuLS0+PHBhdGggZmlsbD0iI2NiY2JjYiIgZD0iTTMwNyAzNC44Yy0xMS41IDUuMS0xOSAxNi42LTE5IDI5LjJ2NjRIMTc2Qzc4LjggMTI4IDAgMjA2LjggMCAzMDRDMCA0MTcuMyA4MS41IDQ2Ny45IDEwMC4yIDQ3OC4xYzIuNSAxLjQgNS4zIDEuOSA4LjEgMS45YzEwLjkgMCAxOS43LTguOSAxOS43LTE5LjdjMC03LjUtNC4zLTE0LjQtOS44LTE5LjVDMTA4LjggNDMxLjkgOTYgNDE0LjQgOTYgMzg0YzAtNTMgNDMtOTYgOTYtOTZoOTZ2NjRjMCAxMi42IDcuNCAyNC4xIDE5IDI5LjJzMjUgMyAzNC40LTUuNGwxNjAtMTQ0YzYuNy02LjEgMTAuNi0xNC43IDEwLjYtMjMuOHMtMy44LTE3LjctMTAuNi0yMy44bC0xNjAtMTQ0Yy05LjQtOC41LTIyLjktMTAuNi0zNC40LTUuNHoiLz48L3N2Zz4=") var(--link) url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHZpZXdCb3g9IjAgMCA1MTIgNTEyIiBoZWlnaHQ9IjIwIiB3aWR0aD0iMjAiIHRyYW5zZm9ybT0icm90YXRlKDE4MCkiPjwhLS0hRm9udCBBd2Vzb21lIEZyZWUgNi41LjEgYnkgQGZvbnRhd2Vzb21lIC0gaHR0cHM6Ly9mb250YXdlc29tZS5jb20gTGljZW5zZSAtIGh0dHBzOi8vZm9udGF3ZXNvbWUuY29tL2xpY2Vuc2UvZnJlZSBDb3B5cmlnaHQgMjAyNCBGb250aWNvbnMsIEluYy4tLT48cGF0aCBmaWxsPSIjY2JjYmNiIiBkPSJNMzA3IDM0LjhjLTExLjUgNS4xLTE5IDE2LjYtMTkgMjkuMnY2NEgxNzZDNzguOCAxMjggMCAyMDYuOCAwIDMwNEMwIDQxNy4zIDgxLjUgNDY3LjkgMTAwLjIgNDc4LjFjMi41IDEuNCA1LjMgMS45IDguMSAxLjljMTAuOSAwIDE5LjctOC45IDE5LjctMTkuN2MwLTcuNS00LjMtMTQuNC05LjgtMTkuNUMxMDguOCA0MzEuOSA5NiA0MTQuNCA5NiAzODRjMC01MyA0My05NiA5Ni05Nmg5NnY2NGMwIDEyLjYgNy40IDI0LjEgMTkgMjkuMnMyNSAzIDM0LjQtNS40bDE2MC0xNDRjNi43LTYuMSAxMC42LTE0LjcgMTAuNi0yMy44cy0zLjgtMTcuNy0xMC42LTIzLjhsLTE2MC0xNDRjLTkuNC04LjUtMjIuOS0xMC42LTM0LjQtNS40eiIvPjwvc3ZnPg==") ;
  40. display: flex;
  41. flex-direction: column;
  42. font-size: 18px;
  43. left: 50%;
  44. position: absolute;
  45. text-align: center;
  46. top: 5px;
  47. transform: translateX(-50%);
  48. -webkit-transform: translateX(-50%);
  49. width: max-content;
  50. white-space: pre-line;
  51. }
  52. /* Change cursor on disabled elements */
  53. :disabled {
  54. cursor: not-allowed;
  55. }
  56. if blurcontent {
  57. .flex.items-center.gap-1.justify-end.text-xs.text-gray-600.font-light.sm\\:ml-3.py-2 > span,
  58. .hidden.sm\\:flex.sm\\:items-center > div > div > div:nth-child(1) > span > button > span > span,
  59. .prose.max-w-none.prose-sm > p {
  60. filter: blur(10px);
  61. }
  62. }
  63. if darkmode {
  64. .bg-gray-100,
  65. .hidden.sm\\:flex.sm\\:items-center > div > div > div:nth-child(1) > span > button,
  66. .absolute.z-50.mt-2.rounded-md.shadow-lg.w-48.origin-top-right.right-0 > div,
  67. .max-w-6xl.z-10.absolute.left-0.right-0.flex.flex-col.w-full.px-4.pb-3.mx-auto.transition-all.duration-200.ease-in-out > ul,
  68. svg.h-4 > path:nth-child(2),
  69. svg.h-4 > path:nth-child(3),
  70. svg.h-4 > path:nth-child(4),
  71. svg.h-4 > path:nth-child(5),
  72. svg.h-4 > path:nth-child(6),
  73. svg.h-4 > path:nth-child(7),
  74. svg.h-4 > path:nth-child(8),
  75. svg.h-4 > path:nth-child(9),
  76. svg.h-5 > path:nth-child(2),
  77. svg.h-5 > path:nth-child(3),
  78. svg.h-5 > path:nth-child(4),
  79. svg.h-5 > path:nth-child(5),
  80. svg.h-5 > path:nth-child(6),
  81. svg.h-5 > path:nth-child(7),
  82. svg.h-5 > path:nth-child(8),
  83. svg.h-5 > path:nth-child(9),
  84. header,
  85. main,
  86. nav,
  87. .max-w-6xl,
  88. .max-w-7xl {
  89. background-color: rgb(9, 16, 29) !important;
  90. fill: white;
  91. }
  92.  
  93. * {
  94. color: white !important;
  95. }
  96. .shadow-md,
  97. .flex.items-center.justify-end.bg-gray-50.border-gray-200.border-t.text-right.px-6.py-4,
  98. .px-4.py-5.bg-white.sm\\:p-6.shadow.sm\\:rounded-tl-md.sm\\:rounded-tr-md,
  99. .bg-gray-50.border-t.px-6.py-4.text-sm.text-gray-700,
  100. .flex.items-center.justify-end.px-4.py-3.bg-gray-50.text-right.sm\\:px-6.shadow.sm\\:rounded-bl-md.sm\\:rounded-br-md,
  101. .mt-5.md\\:mt-0.md\\:col-span-2 > div,
  102. .flex.flex-row.text-gray-700.-m-2.mr-0 > div,
  103. .hover\\:bg-gray-100:hover {
  104. background-color: #a78bfa1a;
  105. }
  106. /* Connect buttons */
  107. [data-platform-name="Discord"] > div,
  108. [data-platform-name="Telegram"] > div {
  109. background-color: rgb(30 41 59);
  110. }
  111.  
  112. .px-6.pb-2 > span:nth-child(1),
  113. .px-6.pb-2 > span:nth-child(2),
  114. .px-6.pb-2 > span:nth-child(3) {
  115. background-color: rgb(9, 16, 29);
  116. }
  117.  
  118. /* Enable Voice Messages? box */
  119. #headlessui-dialog-panel-9 {
  120. background-color: rgb(9, 16, 29);
  121. }
  122. /* Form fields */
  123. input,
  124. option,
  125. select,
  126. .mt-5 > div > span:nth-child(3) > span > button,
  127. .relative > span {
  128. color: black !important;
  129. }
  130. /* Hana's bubbles */
  131. .relative.text-sm.py-2.px-4.shadow.rounded-xl.sm\\:ml-3.bg-white {
  132. background: linear-gradient(to right, #cc2b5e, #753a88);
  133. border-radius: 8px 20px 20px 20px;
  134. }
  135.  
  136. /* Our bubbles */
  137. .relative.text-sm.py-2.px-4.shadow.rounded-xl.sm\\:mr-3.bg-violet-100 {
  138. background: linear-gradient(to right, #3a6186, #89253e);
  139. border-radius: 20px 8px 20px 20px;
  140. }
  141.  
  142. /* Heart background */
  143. .flex.flex-col.pt-6.pb-12.relative > div {
  144. background: url(https://i.ibb.co/fYQkYyc/heart-pattern.png) fixed 100%;
  145. }
  146. /* Chat link in nav */
  147. div.flex.items-center.flex-1.justify-end > a > i {
  148. color: rgb(139 92 246) !important;
  149. }
  150.  
  151. div.flex.items-center.flex-1.justify-end > a > i:hover {
  152. color: rgb(124 58 237) !important;
  153. }
  154. /* textarea */
  155. @keyframes gradient {
  156. 0% {
  157. background-position: 0% 50%;
  158. }
  159. 100% {
  160. background-position: 100% 50%;
  161. }
  162. }
  163.  
  164. textarea:not(:focus) {
  165. animation: gradient 5s ease infinite;
  166. animation-fill-mode: forwards;
  167. background-color: rgb(9, 16, 29);
  168. background-image: linear-gradient(90deg, rgba(58,180,133,0.14066876750700286) 0%, rgba(89,98,140,0.16307773109243695) 21%, rgba(253,29,29,0.16307773109243695) 43%, rgba(218,41,141,0.16867997198879547) 65%, rgba(183,53,252,0.24711134453781514) 80%, rgba(252,176,69,0.3031337535014006) 100%);
  169. background-size: 400% 400%;
  170. border: 0px;
  171. border-radius: 20px 0px 0px 20px;
  172. transition: all .3s;
  173. -webkit-transition: all .3s;
  174. }
  175.  
  176. textarea:focus {
  177. animation: gradient 5s ease infinite;
  178. animation-fill-mode: forwards;
  179. background-color: rgb(9, 16, 29);
  180. background-image: linear-gradient(90deg, rgba(58,180,133,0.14066876750700286) 0%, rgba(89,98,140,0.16307773109243695) 21%, rgba(253,29,29,0.16307773109243695) 43%, rgba(218,41,141,0.16867997198879547) 65%, rgba(183,53,252,0.24711134453781514) 80%, rgba(252,176,69,0.3031337535014006) 100%);
  181. background-size: 400% 400%;
  182. border-radius: 20px 0px 0px 20px;
  183. transition: all .3s;
  184. -webkit-transition: all .3s;
  185. }
  186.  
  187. .flex.items-center.justify-center.bg-violet-500.rounded-r.text-white.px-4.py-2.transition.duration-300.ease-in-out.cursor-pointer.hover\\:bg-violet-600 {
  188. border-radius: 0px 20px 20px 0px;
  189. }
  190.  
  191. /* Connect buttons */
  192. #headlessui-disclosure-panel-8 > div > div.mt-2.flex.flex-col.sm\\:flex-row.flex-wrap.items-start.md\\:items-center.gap-2 > div:nth-child(1) > div > button > span,
  193. #headlessui-disclosure-panel-8 > div > div.mt-2.flex.flex-col.sm\\:flex-row.flex-wrap.items-start.md\\:items-center.gap-2 > div:nth-child(2) > div > div.flex.items-center.gap-2.truncate > span,
  194. #headlessui-disclosure-panel-8 > div > div.mt-2.flex.flex-col.sm\\:flex-row.flex-wrap.items-start.md\\:items-center.gap-2 > div:nth-child(2) > div > div.flex.items-center.gap-2.truncate > div > span {
  195. color: rgb(139 92 246) !important;
  196. }
  197. }
  198. if widemode {
  199. .bg-gray-100,
  200. .hidden.sm\\:flex.sm\\:items-center > div > div > div:nth-child(1) > span > button,
  201. .absolute.z-50.mt-2.rounded-md.shadow-lg.w-48.origin-top-right.right-0 > div,
  202. .max-w-6xl.z-10.absolute.left-0.right-0.flex.flex-col.w-full.px-4.pb-3.mx-auto.transition-all.duration-200.ease-in-out > ul,
  203. svg.h-4 > path:nth-child(2),
  204. svg.h-4 > path:nth-child(3),
  205. svg.h-4 > path:nth-child(4),
  206. svg.h-4 > path:nth-child(5),
  207. svg.h-4 > path:nth-child(6),
  208. svg.h-4 > path:nth-child(7),
  209. svg.h-4 > path:nth-child(8),
  210. svg.h-4 > path:nth-child(9),
  211. svg.h-5 > path:nth-child(2),
  212. svg.h-5 > path:nth-child(3),
  213. svg.h-5 > path:nth-child(4),
  214. svg.h-5 > path:nth-child(5),
  215. svg.h-5 > path:nth-child(6),
  216. svg.h-5 > path:nth-child(7),
  217. svg.h-5 > path:nth-child(8),
  218. svg.h-5 > path:nth-child(9),
  219. main,
  220. .max-w-6xl,
  221. .max-w-7xl {
  222. max-width: 100%;
  223. min-width: 100%;
  224. }
  225. .py-6,
  226. .py-12 {
  227. padding-top: 0px;
  228. }
  229. .pb-12 {
  230. padding-bottom: 25px;
  231. }
  232.  
  233. /* Hide header */
  234. nav {
  235. border-bottom: 0px;
  236. }
  237. header {
  238. display: none;
  239. }
  240. /* Tips */
  241. .flex.items-center.gap-1.justify-end.text-xs.text-gray-600.font-light.sm\\:ml-3.py-2,
  242. .absolute.text-xs.bottom-0.right-0.\-mb-5.mr-2.text-gray-400.w-full.text-right.flex.flex-row.gap-2.items-center.justify-end,
  243. .prose.max-w-none.prose-sm,
  244. .text-slate-500 {
  245. font-size: 16px !important;
  246. }
  247.  
  248. .flex.flex-row.text-xs.text-slate-500.mt-2.ml-8.gap-2 {
  249. font-size: 0.75rem !important;
  250. }
  251.  
  252. /* Bigger text */
  253. .prose.max-w-none.prose-sm > p,
  254. .text-sm {
  255. font-size: 20px;
  256. }
  257. }
  258. if thinscrollbar {
  259. ::-webkit-scrollbar {
  260. width: 5px;
  261. border-radius: 20px;
  262. }
  263.  
  264. ::-webkit-scrollbar-track {
  265. box-shadow: inset 0 0 5px grey;
  266. border-radius: 20px;
  267. }
  268.  
  269. ::-webkit-scrollbar-thumb {
  270. background: rgb(139 92 246);
  271. border-radius: 20px;
  272. }
  273.  
  274. ::-webkit-scrollbar-thumb:hover {
  275. background: rgb(124 58 237);
  276. border-radius: 20px;
  277. }
  278. }
  279. }