├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md └── stale.yml ├── .gitignore ├── LICENSE ├── README.org ├── android-messages └── user.css ├── instagram └── darkmode.css ├── install.bat ├── install.sh ├── messenger └── darkmode.css ├── rambox └── function.js ├── telegram └── darkmode.css └── whatsapp └── darkmode.css /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F41B Bug report" 3 | about: "Create a report to help us improve" 4 | labels: bug 5 | 6 | --- 7 | 8 | **Describe the bug**: 9 | A clear and concise description of what the bug is. 10 | 11 | **Steps to reproduce**: 12 | 1. Click on '...' 13 | 2. Scroll down to '...' 14 | 15 | **Screenshots**: 16 | Please add screenshots to help explain your problem. 17 | 18 | **System information**: 19 | - OS: [e.g. macOS, Manjaro, etc] 20 | - Application: [Rambox/Ferdi/Franz] 21 | 22 | **Additional context**: 23 | Add any other context about the problem here. 24 | A snippet of the HTML where the issue occurs is useful. 25 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: "\U0001F31B Feature request" 3 | about: Suggest an idea for this project 4 | labels: enhancement 5 | 6 | --- 7 | 8 | **Is your feature request related to a problem? Please describe.** 9 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 10 | 11 | **Describe the solution you'd like** 12 | A clear and concise description of what you want to happen. 13 | 14 | **Describe alternatives you've considered** 15 | A clear and concise description of any alternative solutions or features you've considered. 16 | 17 | **Additional context** 18 | Add any other context or screenshots about the feature request here. 19 | -------------------------------------------------------------------------------- /.github/stale.yml: -------------------------------------------------------------------------------- 1 | # Number of days of inactivity before an issue becomes stale 2 | daysUntilStale: 30 3 | # Number of days of inactivity before a stale issue is closed 4 | daysUntilClose: 7 5 | # Issues with these labels will never be considered stale 6 | exemptLabels: 7 | - pinned 8 | - security 9 | - priority 10 | # Label to use when marking an issue as stale 11 | staleLabel: stale 12 | # Optionally, specify configuration settings that are specific to just 'issues' or 'pulls': 13 | issues: 14 | markComment: > 15 | This issue has been automatically marked as stale because it has not had 16 | recent activity. It will be closed if no further activity occurs. Thank you 17 | for your contributions. 18 | pulls: 19 | markComment: > 20 | This pull request has been automatically marked as stale because it has not had 21 | recent activity. It will be closed if no further activity occurs. Thank you 22 | for your contributions. -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | */mychanges.css 2 | */update.sh -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | GNU GENERAL PUBLIC LICENSE 2 | Version 3, 29 June 2007 3 | 4 | Copyright (C) 2007 Free Software Foundation, Inc. 5 | Everyone is permitted to copy and distribute verbatim copies 6 | of this license document, but changing it is not allowed. 7 | 8 | Preamble 9 | 10 | The GNU General Public License is a free, copyleft license for 11 | software and other kinds of works. 12 | 13 | The licenses for most software and other practical works are designed 14 | to take away your freedom to share and change the works. By contrast, 15 | the GNU General Public License is intended to guarantee your freedom to 16 | share and change all versions of a program--to make sure it remains free 17 | software for all its users. We, the Free Software Foundation, use the 18 | GNU General Public License for most of our software; it applies also to 19 | any other work released this way by its authors. You can apply it to 20 | your programs, too. 21 | 22 | When we speak of free software, we are referring to freedom, not 23 | price. Our General Public Licenses are designed to make sure that you 24 | have the freedom to distribute copies of free software (and charge for 25 | them if you wish), that you receive source code or can get it if you 26 | want it, that you can change the software or use pieces of it in new 27 | free programs, and that you know you can do these things. 28 | 29 | To protect your rights, we need to prevent others from denying you 30 | these rights or asking you to surrender the rights. Therefore, you have 31 | certain responsibilities if you distribute copies of the software, or if 32 | you modify it: responsibilities to respect the freedom of others. 33 | 34 | For example, if you distribute copies of such a program, whether 35 | gratis or for a fee, you must pass on to the recipients the same 36 | freedoms that you received. You must make sure that they, too, receive 37 | or can get the source code. And you must show them these terms so they 38 | know their rights. 39 | 40 | Developers that use the GNU GPL protect your rights with two steps: 41 | (1) assert copyright on the software, and (2) offer you this License 42 | giving you legal permission to copy, distribute and/or modify it. 43 | 44 | For the developers' and authors' protection, the GPL clearly explains 45 | that there is no warranty for this free software. For both users' and 46 | authors' sake, the GPL requires that modified versions be marked as 47 | changed, so that their problems will not be attributed erroneously to 48 | authors of previous versions. 49 | 50 | Some devices are designed to deny users access to install or run 51 | modified versions of the software inside them, although the manufacturer 52 | can do so. This is fundamentally incompatible with the aim of 53 | protecting users' freedom to change the software. The systematic 54 | pattern of such abuse occurs in the area of products for individuals to 55 | use, which is precisely where it is most unacceptable. Therefore, we 56 | have designed this version of the GPL to prohibit the practice for those 57 | products. If such problems arise substantially in other domains, we 58 | stand ready to extend this provision to those domains in future versions 59 | of the GPL, as needed to protect the freedom of users. 60 | 61 | Finally, every program is threatened constantly by software patents. 62 | States should not allow patents to restrict development and use of 63 | software on general-purpose computers, but in those that do, we wish to 64 | avoid the special danger that patents applied to a free program could 65 | make it effectively proprietary. To prevent this, the GPL assures that 66 | patents cannot be used to render the program non-free. 67 | 68 | The precise terms and conditions for copying, distribution and 69 | modification follow. 70 | 71 | TERMS AND CONDITIONS 72 | 73 | 0. Definitions. 74 | 75 | "This License" refers to version 3 of the GNU General Public License. 76 | 77 | "Copyright" also means copyright-like laws that apply to other kinds of 78 | works, such as semiconductor masks. 79 | 80 | "The Program" refers to any copyrightable work licensed under this 81 | License. Each licensee is addressed as "you". "Licensees" and 82 | "recipients" may be individuals or organizations. 83 | 84 | To "modify" a work means to copy from or adapt all or part of the work 85 | in a fashion requiring copyright permission, other than the making of an 86 | exact copy. The resulting work is called a "modified version" of the 87 | earlier work or a work "based on" the earlier work. 88 | 89 | A "covered work" means either the unmodified Program or a work based 90 | on the Program. 91 | 92 | To "propagate" a work means to do anything with it that, without 93 | permission, would make you directly or secondarily liable for 94 | infringement under applicable copyright law, except executing it on a 95 | computer or modifying a private copy. Propagation includes copying, 96 | distribution (with or without modification), making available to the 97 | public, and in some countries other activities as well. 98 | 99 | To "convey" a work means any kind of propagation that enables other 100 | parties to make or receive copies. Mere interaction with a user through 101 | a computer network, with no transfer of a copy, is not conveying. 102 | 103 | An interactive user interface displays "Appropriate Legal Notices" 104 | to the extent that it includes a convenient and prominently visible 105 | feature that (1) displays an appropriate copyright notice, and (2) 106 | tells the user that there is no warranty for the work (except to the 107 | extent that warranties are provided), that licensees may convey the 108 | work under this License, and how to view a copy of this License. If 109 | the interface presents a list of user commands or options, such as a 110 | menu, a prominent item in the list meets this criterion. 111 | 112 | 1. Source Code. 113 | 114 | The "source code" for a work means the preferred form of the work 115 | for making modifications to it. "Object code" means any non-source 116 | form of a work. 117 | 118 | A "Standard Interface" means an interface that either is an official 119 | standard defined by a recognized standards body, or, in the case of 120 | interfaces specified for a particular programming language, one that 121 | is widely used among developers working in that language. 122 | 123 | The "System Libraries" of an executable work include anything, other 124 | than the work as a whole, that (a) is included in the normal form of 125 | packaging a Major Component, but which is not part of that Major 126 | Component, and (b) serves only to enable use of the work with that 127 | Major Component, or to implement a Standard Interface for which an 128 | implementation is available to the public in source code form. A 129 | "Major Component", in this context, means a major essential component 130 | (kernel, window system, and so on) of the specific operating system 131 | (if any) on which the executable work runs, or a compiler used to 132 | produce the work, or an object code interpreter used to run it. 133 | 134 | The "Corresponding Source" for a work in object code form means all 135 | the source code needed to generate, install, and (for an executable 136 | work) run the object code and to modify the work, including scripts to 137 | control those activities. However, it does not include the work's 138 | System Libraries, or general-purpose tools or generally available free 139 | programs which are used unmodified in performing those activities but 140 | which are not part of the work. For example, Corresponding Source 141 | includes interface definition files associated with source files for 142 | the work, and the source code for shared libraries and dynamically 143 | linked subprograms that the work is specifically designed to require, 144 | such as by intimate data communication or control flow between those 145 | subprograms and other parts of the work. 146 | 147 | The Corresponding Source need not include anything that users 148 | can regenerate automatically from other parts of the Corresponding 149 | Source. 150 | 151 | The Corresponding Source for a work in source code form is that 152 | same work. 153 | 154 | 2. Basic Permissions. 155 | 156 | All rights granted under this License are granted for the term of 157 | copyright on the Program, and are irrevocable provided the stated 158 | conditions are met. This License explicitly affirms your unlimited 159 | permission to run the unmodified Program. The output from running a 160 | covered work is covered by this License only if the output, given its 161 | content, constitutes a covered work. This License acknowledges your 162 | rights of fair use or other equivalent, as provided by copyright law. 163 | 164 | You may make, run and propagate covered works that you do not 165 | convey, without conditions so long as your license otherwise remains 166 | in force. You may convey covered works to others for the sole purpose 167 | of having them make modifications exclusively for you, or provide you 168 | with facilities for running those works, provided that you comply with 169 | the terms of this License in conveying all material for which you do 170 | not control copyright. Those thus making or running the covered works 171 | for you must do so exclusively on your behalf, under your direction 172 | and control, on terms that prohibit them from making any copies of 173 | your copyrighted material outside their relationship with you. 174 | 175 | Conveying under any other circumstances is permitted solely under 176 | the conditions stated below. Sublicensing is not allowed; section 10 177 | makes it unnecessary. 178 | 179 | 3. Protecting Users' Legal Rights From Anti-Circumvention Law. 180 | 181 | No covered work shall be deemed part of an effective technological 182 | measure under any applicable law fulfilling obligations under article 183 | 11 of the WIPO copyright treaty adopted on 20 December 1996, or 184 | similar laws prohibiting or restricting circumvention of such 185 | measures. 186 | 187 | When you convey a covered work, you waive any legal power to forbid 188 | circumvention of technological measures to the extent such circumvention 189 | is effected by exercising rights under this License with respect to 190 | the covered work, and you disclaim any intention to limit operation or 191 | modification of the work as a means of enforcing, against the work's 192 | users, your or third parties' legal rights to forbid circumvention of 193 | technological measures. 194 | 195 | 4. Conveying Verbatim Copies. 196 | 197 | You may convey verbatim copies of the Program's source code as you 198 | receive it, in any medium, provided that you conspicuously and 199 | appropriately publish on each copy an appropriate copyright notice; 200 | keep intact all notices stating that this License and any 201 | non-permissive terms added in accord with section 7 apply to the code; 202 | keep intact all notices of the absence of any warranty; and give all 203 | recipients a copy of this License along with the Program. 204 | 205 | You may charge any price or no price for each copy that you convey, 206 | and you may offer support or warranty protection for a fee. 207 | 208 | 5. Conveying Modified Source Versions. 209 | 210 | You may convey a work based on the Program, or the modifications to 211 | produce it from the Program, in the form of source code under the 212 | terms of section 4, provided that you also meet all of these conditions: 213 | 214 | a) The work must carry prominent notices stating that you modified 215 | it, and giving a relevant date. 216 | 217 | b) The work must carry prominent notices stating that it is 218 | released under this License and any conditions added under section 219 | 7. This requirement modifies the requirement in section 4 to 220 | "keep intact all notices". 221 | 222 | c) You must license the entire work, as a whole, under this 223 | License to anyone who comes into possession of a copy. This 224 | License will therefore apply, along with any applicable section 7 225 | additional terms, to the whole of the work, and all its parts, 226 | regardless of how they are packaged. This License gives no 227 | permission to license the work in any other way, but it does not 228 | invalidate such permission if you have separately received it. 229 | 230 | d) If the work has interactive user interfaces, each must display 231 | Appropriate Legal Notices; however, if the Program has interactive 232 | interfaces that do not display Appropriate Legal Notices, your 233 | work need not make them do so. 234 | 235 | A compilation of a covered work with other separate and independent 236 | works, which are not by their nature extensions of the covered work, 237 | and which are not combined with it such as to form a larger program, 238 | in or on a volume of a storage or distribution medium, is called an 239 | "aggregate" if the compilation and its resulting copyright are not 240 | used to limit the access or legal rights of the compilation's users 241 | beyond what the individual works permit. Inclusion of a covered work 242 | in an aggregate does not cause this License to apply to the other 243 | parts of the aggregate. 244 | 245 | 6. Conveying Non-Source Forms. 246 | 247 | You may convey a covered work in object code form under the terms 248 | of sections 4 and 5, provided that you also convey the 249 | machine-readable Corresponding Source under the terms of this License, 250 | in one of these ways: 251 | 252 | a) Convey the object code in, or embodied in, a physical product 253 | (including a physical distribution medium), accompanied by the 254 | Corresponding Source fixed on a durable physical medium 255 | customarily used for software interchange. 256 | 257 | b) Convey the object code in, or embodied in, a physical product 258 | (including a physical distribution medium), accompanied by a 259 | written offer, valid for at least three years and valid for as 260 | long as you offer spare parts or customer support for that product 261 | model, to give anyone who possesses the object code either (1) a 262 | copy of the Corresponding Source for all the software in the 263 | product that is covered by this License, on a durable physical 264 | medium customarily used for software interchange, for a price no 265 | more than your reasonable cost of physically performing this 266 | conveying of source, or (2) access to copy the 267 | Corresponding Source from a network server at no charge. 268 | 269 | c) Convey individual copies of the object code with a copy of the 270 | written offer to provide the Corresponding Source. This 271 | alternative is allowed only occasionally and noncommercially, and 272 | only if you received the object code with such an offer, in accord 273 | with subsection 6b. 274 | 275 | d) Convey the object code by offering access from a designated 276 | place (gratis or for a charge), and offer equivalent access to the 277 | Corresponding Source in the same way through the same place at no 278 | further charge. You need not require recipients to copy the 279 | Corresponding Source along with the object code. If the place to 280 | copy the object code is a network server, the Corresponding Source 281 | may be on a different server (operated by you or a third party) 282 | that supports equivalent copying facilities, provided you maintain 283 | clear directions next to the object code saying where to find the 284 | Corresponding Source. Regardless of what server hosts the 285 | Corresponding Source, you remain obligated to ensure that it is 286 | available for as long as needed to satisfy these requirements. 287 | 288 | e) Convey the object code using peer-to-peer transmission, provided 289 | you inform other peers where the object code and Corresponding 290 | Source of the work are being offered to the general public at no 291 | charge under subsection 6d. 292 | 293 | A separable portion of the object code, whose source code is excluded 294 | from the Corresponding Source as a System Library, need not be 295 | included in conveying the object code work. 296 | 297 | A "User Product" is either (1) a "consumer product", which means any 298 | tangible personal property which is normally used for personal, family, 299 | or household purposes, or (2) anything designed or sold for incorporation 300 | into a dwelling. In determining whether a product is a consumer product, 301 | doubtful cases shall be resolved in favor of coverage. For a particular 302 | product received by a particular user, "normally used" refers to a 303 | typical or common use of that class of product, regardless of the status 304 | of the particular user or of the way in which the particular user 305 | actually uses, or expects or is expected to use, the product. A product 306 | is a consumer product regardless of whether the product has substantial 307 | commercial, industrial or non-consumer uses, unless such uses represent 308 | the only significant mode of use of the product. 309 | 310 | "Installation Information" for a User Product means any methods, 311 | procedures, authorization keys, or other information required to install 312 | and execute modified versions of a covered work in that User Product from 313 | a modified version of its Corresponding Source. The information must 314 | suffice to ensure that the continued functioning of the modified object 315 | code is in no case prevented or interfered with solely because 316 | modification has been made. 317 | 318 | If you convey an object code work under this section in, or with, or 319 | specifically for use in, a User Product, and the conveying occurs as 320 | part of a transaction in which the right of possession and use of the 321 | User Product is transferred to the recipient in perpetuity or for a 322 | fixed term (regardless of how the transaction is characterized), the 323 | Corresponding Source conveyed under this section must be accompanied 324 | by the Installation Information. But this requirement does not apply 325 | if neither you nor any third party retains the ability to install 326 | modified object code on the User Product (for example, the work has 327 | been installed in ROM). 328 | 329 | The requirement to provide Installation Information does not include a 330 | requirement to continue to provide support service, warranty, or updates 331 | for a work that has been modified or installed by the recipient, or for 332 | the User Product in which it has been modified or installed. Access to a 333 | network may be denied when the modification itself materially and 334 | adversely affects the operation of the network or violates the rules and 335 | protocols for communication across the network. 336 | 337 | Corresponding Source conveyed, and Installation Information provided, 338 | in accord with this section must be in a format that is publicly 339 | documented (and with an implementation available to the public in 340 | source code form), and must require no special password or key for 341 | unpacking, reading or copying. 342 | 343 | 7. Additional Terms. 344 | 345 | "Additional permissions" are terms that supplement the terms of this 346 | License by making exceptions from one or more of its conditions. 347 | Additional permissions that are applicable to the entire Program shall 348 | be treated as though they were included in this License, to the extent 349 | that they are valid under applicable law. If additional permissions 350 | apply only to part of the Program, that part may be used separately 351 | under those permissions, but the entire Program remains governed by 352 | this License without regard to the additional permissions. 353 | 354 | When you convey a copy of a covered work, you may at your option 355 | remove any additional permissions from that copy, or from any part of 356 | it. (Additional permissions may be written to require their own 357 | removal in certain cases when you modify the work.) You may place 358 | additional permissions on material, added by you to a covered work, 359 | for which you have or can give appropriate copyright permission. 360 | 361 | Notwithstanding any other provision of this License, for material you 362 | add to a covered work, you may (if authorized by the copyright holders of 363 | that material) supplement the terms of this License with terms: 364 | 365 | a) Disclaiming warranty or limiting liability differently from the 366 | terms of sections 15 and 16 of this License; or 367 | 368 | b) Requiring preservation of specified reasonable legal notices or 369 | author attributions in that material or in the Appropriate Legal 370 | Notices displayed by works containing it; or 371 | 372 | c) Prohibiting misrepresentation of the origin of that material, or 373 | requiring that modified versions of such material be marked in 374 | reasonable ways as different from the original version; or 375 | 376 | d) Limiting the use for publicity purposes of names of licensors or 377 | authors of the material; or 378 | 379 | e) Declining to grant rights under trademark law for use of some 380 | trade names, trademarks, or service marks; or 381 | 382 | f) Requiring indemnification of licensors and authors of that 383 | material by anyone who conveys the material (or modified versions of 384 | it) with contractual assumptions of liability to the recipient, for 385 | any liability that these contractual assumptions directly impose on 386 | those licensors and authors. 387 | 388 | All other non-permissive additional terms are considered "further 389 | restrictions" within the meaning of section 10. If the Program as you 390 | received it, or any part of it, contains a notice stating that it is 391 | governed by this License along with a term that is a further 392 | restriction, you may remove that term. If a license document contains 393 | a further restriction but permits relicensing or conveying under this 394 | License, you may add to a covered work material governed by the terms 395 | of that license document, provided that the further restriction does 396 | not survive such relicensing or conveying. 397 | 398 | If you add terms to a covered work in accord with this section, you 399 | must place, in the relevant source files, a statement of the 400 | additional terms that apply to those files, or a notice indicating 401 | where to find the applicable terms. 402 | 403 | Additional terms, permissive or non-permissive, may be stated in the 404 | form of a separately written license, or stated as exceptions; 405 | the above requirements apply either way. 406 | 407 | 8. Termination. 408 | 409 | You may not propagate or modify a covered work except as expressly 410 | provided under this License. Any attempt otherwise to propagate or 411 | modify it is void, and will automatically terminate your rights under 412 | this License (including any patent licenses granted under the third 413 | paragraph of section 11). 414 | 415 | However, if you cease all violation of this License, then your 416 | license from a particular copyright holder is reinstated (a) 417 | provisionally, unless and until the copyright holder explicitly and 418 | finally terminates your license, and (b) permanently, if the copyright 419 | holder fails to notify you of the violation by some reasonable means 420 | prior to 60 days after the cessation. 421 | 422 | Moreover, your license from a particular copyright holder is 423 | reinstated permanently if the copyright holder notifies you of the 424 | violation by some reasonable means, this is the first time you have 425 | received notice of violation of this License (for any work) from that 426 | copyright holder, and you cure the violation prior to 30 days after 427 | your receipt of the notice. 428 | 429 | Termination of your rights under this section does not terminate the 430 | licenses of parties who have received copies or rights from you under 431 | this License. If your rights have been terminated and not permanently 432 | reinstated, you do not qualify to receive new licenses for the same 433 | material under section 10. 434 | 435 | 9. Acceptance Not Required for Having Copies. 436 | 437 | You are not required to accept this License in order to receive or 438 | run a copy of the Program. Ancillary propagation of a covered work 439 | occurring solely as a consequence of using peer-to-peer transmission 440 | to receive a copy likewise does not require acceptance. However, 441 | nothing other than this License grants you permission to propagate or 442 | modify any covered work. These actions infringe copyright if you do 443 | not accept this License. Therefore, by modifying or propagating a 444 | covered work, you indicate your acceptance of this License to do so. 445 | 446 | 10. Automatic Licensing of Downstream Recipients. 447 | 448 | Each time you convey a covered work, the recipient automatically 449 | receives a license from the original licensors, to run, modify and 450 | propagate that work, subject to this License. You are not responsible 451 | for enforcing compliance by third parties with this License. 452 | 453 | An "entity transaction" is a transaction transferring control of an 454 | organization, or substantially all assets of one, or subdividing an 455 | organization, or merging organizations. If propagation of a covered 456 | work results from an entity transaction, each party to that 457 | transaction who receives a copy of the work also receives whatever 458 | licenses to the work the party's predecessor in interest had or could 459 | give under the previous paragraph, plus a right to possession of the 460 | Corresponding Source of the work from the predecessor in interest, if 461 | the predecessor has it or can get it with reasonable efforts. 462 | 463 | You may not impose any further restrictions on the exercise of the 464 | rights granted or affirmed under this License. For example, you may 465 | not impose a license fee, royalty, or other charge for exercise of 466 | rights granted under this License, and you may not initiate litigation 467 | (including a cross-claim or counterclaim in a lawsuit) alleging that 468 | any patent claim is infringed by making, using, selling, offering for 469 | sale, or importing the Program or any portion of it. 470 | 471 | 11. Patents. 472 | 473 | A "contributor" is a copyright holder who authorizes use under this 474 | License of the Program or a work on which the Program is based. The 475 | work thus licensed is called the contributor's "contributor version". 476 | 477 | A contributor's "essential patent claims" are all patent claims 478 | owned or controlled by the contributor, whether already acquired or 479 | hereafter acquired, that would be infringed by some manner, permitted 480 | by this License, of making, using, or selling its contributor version, 481 | but do not include claims that would be infringed only as a 482 | consequence of further modification of the contributor version. For 483 | purposes of this definition, "control" includes the right to grant 484 | patent sublicenses in a manner consistent with the requirements of 485 | this License. 486 | 487 | Each contributor grants you a non-exclusive, worldwide, royalty-free 488 | patent license under the contributor's essential patent claims, to 489 | make, use, sell, offer for sale, import and otherwise run, modify and 490 | propagate the contents of its contributor version. 491 | 492 | In the following three paragraphs, a "patent license" is any express 493 | agreement or commitment, however denominated, not to enforce a patent 494 | (such as an express permission to practice a patent or covenant not to 495 | sue for patent infringement). To "grant" such a patent license to a 496 | party means to make such an agreement or commitment not to enforce a 497 | patent against the party. 498 | 499 | If you convey a covered work, knowingly relying on a patent license, 500 | and the Corresponding Source of the work is not available for anyone 501 | to copy, free of charge and under the terms of this License, through a 502 | publicly available network server or other readily accessible means, 503 | then you must either (1) cause the Corresponding Source to be so 504 | available, or (2) arrange to deprive yourself of the benefit of the 505 | patent license for this particular work, or (3) arrange, in a manner 506 | consistent with the requirements of this License, to extend the patent 507 | license to downstream recipients. "Knowingly relying" means you have 508 | actual knowledge that, but for the patent license, your conveying the 509 | covered work in a country, or your recipient's use of the covered work 510 | in a country, would infringe one or more identifiable patents in that 511 | country that you have reason to believe are valid. 512 | 513 | If, pursuant to or in connection with a single transaction or 514 | arrangement, you convey, or propagate by procuring conveyance of, a 515 | covered work, and grant a patent license to some of the parties 516 | receiving the covered work authorizing them to use, propagate, modify 517 | or convey a specific copy of the covered work, then the patent license 518 | you grant is automatically extended to all recipients of the covered 519 | work and works based on it. 520 | 521 | A patent license is "discriminatory" if it does not include within 522 | the scope of its coverage, prohibits the exercise of, or is 523 | conditioned on the non-exercise of one or more of the rights that are 524 | specifically granted under this License. You may not convey a covered 525 | work if you are a party to an arrangement with a third party that is 526 | in the business of distributing software, under which you make payment 527 | to the third party based on the extent of your activity of conveying 528 | the work, and under which the third party grants, to any of the 529 | parties who would receive the covered work from you, a discriminatory 530 | patent license (a) in connection with copies of the covered work 531 | conveyed by you (or copies made from those copies), or (b) primarily 532 | for and in connection with specific products or compilations that 533 | contain the covered work, unless you entered into that arrangement, 534 | or that patent license was granted, prior to 28 March 2007. 535 | 536 | Nothing in this License shall be construed as excluding or limiting 537 | any implied license or other defenses to infringement that may 538 | otherwise be available to you under applicable patent law. 539 | 540 | 12. No Surrender of Others' Freedom. 541 | 542 | If conditions are imposed on you (whether by court order, agreement or 543 | otherwise) that contradict the conditions of this License, they do not 544 | excuse you from the conditions of this License. If you cannot convey a 545 | covered work so as to satisfy simultaneously your obligations under this 546 | License and any other pertinent obligations, then as a consequence you may 547 | not convey it at all. For example, if you agree to terms that obligate you 548 | to collect a royalty for further conveying from those to whom you convey 549 | the Program, the only way you could satisfy both those terms and this 550 | License would be to refrain entirely from conveying the Program. 551 | 552 | 13. Use with the GNU Affero General Public License. 553 | 554 | Notwithstanding any other provision of this License, you have 555 | permission to link or combine any covered work with a work licensed 556 | under version 3 of the GNU Affero General Public License into a single 557 | combined work, and to convey the resulting work. The terms of this 558 | License will continue to apply to the part which is the covered work, 559 | but the special requirements of the GNU Affero General Public License, 560 | section 13, concerning interaction through a network will apply to the 561 | combination as such. 562 | 563 | 14. Revised Versions of this License. 564 | 565 | The Free Software Foundation may publish revised and/or new versions of 566 | the GNU General Public License from time to time. Such new versions will 567 | be similar in spirit to the present version, but may differ in detail to 568 | address new problems or concerns. 569 | 570 | Each version is given a distinguishing version number. If the 571 | Program specifies that a certain numbered version of the GNU General 572 | Public License "or any later version" applies to it, you have the 573 | option of following the terms and conditions either of that numbered 574 | version or of any later version published by the Free Software 575 | Foundation. If the Program does not specify a version number of the 576 | GNU General Public License, you may choose any version ever published 577 | by the Free Software Foundation. 578 | 579 | If the Program specifies that a proxy can decide which future 580 | versions of the GNU General Public License can be used, that proxy's 581 | public statement of acceptance of a version permanently authorizes you 582 | to choose that version for the Program. 583 | 584 | Later license versions may give you additional or different 585 | permissions. However, no additional obligations are imposed on any 586 | author or copyright holder as a result of your choosing to follow a 587 | later version. 588 | 589 | 15. Disclaimer of Warranty. 590 | 591 | THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY 592 | APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT 593 | HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY 594 | OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, 595 | THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR 596 | PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM 597 | IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF 598 | ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 599 | 600 | 16. Limitation of Liability. 601 | 602 | IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING 603 | WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS 604 | THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY 605 | GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE 606 | USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF 607 | DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD 608 | PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), 609 | EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF 610 | SUCH DAMAGES. 611 | 612 | 17. Interpretation of Sections 15 and 16. 613 | 614 | If the disclaimer of warranty and limitation of liability provided 615 | above cannot be given local legal effect according to their terms, 616 | reviewing courts shall apply local law that most closely approximates 617 | an absolute waiver of all civil liability in connection with the 618 | Program, unless a warranty or assumption of liability accompanies a 619 | copy of the Program in return for a fee. 620 | 621 | END OF TERMS AND CONDITIONS 622 | 623 | How to Apply These Terms to Your New Programs 624 | 625 | If you develop a new program, and you want it to be of the greatest 626 | possible use to the public, the best way to achieve this is to make it 627 | free software which everyone can redistribute and change under these terms. 628 | 629 | To do so, attach the following notices to the program. It is safest 630 | to attach them to the start of each source file to most effectively 631 | state the exclusion of warranty; and each file should have at least 632 | the "copyright" line and a pointer to where the full notice is found. 633 | 634 | 635 | Copyright (C) 636 | 637 | This program is free software: you can redistribute it and/or modify 638 | it under the terms of the GNU General Public License as published by 639 | the Free Software Foundation, either version 3 of the License, or 640 | (at your option) any later version. 641 | 642 | This program is distributed in the hope that it will be useful, 643 | but WITHOUT ANY WARRANTY; without even the implied warranty of 644 | MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 645 | GNU General Public License for more details. 646 | 647 | You should have received a copy of the GNU General Public License 648 | along with this program. If not, see . 649 | 650 | Also add information on how to contact you by electronic and paper mail. 651 | 652 | If the program does terminal interaction, make it output a short 653 | notice like this when it starts in an interactive mode: 654 | 655 | Copyright (C) 656 | This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. 657 | This is free software, and you are welcome to redistribute it 658 | under certain conditions; type `show c' for details. 659 | 660 | The hypothetical commands `show w' and `show c' should show the appropriate 661 | parts of the General Public License. Of course, your program's commands 662 | might be different; for a GUI interface, you would use an "about box". 663 | 664 | You should also get your employer (if you work as a programmer) or school, 665 | if any, to sign a "copyright disclaimer" for the program, if necessary. 666 | For more information on this, and how to apply and follow the GNU GPL, see 667 | . 668 | 669 | The GNU General Public License does not permit incorporating your program 670 | into proprietary programs. If your program is a subroutine library, you 671 | may consider it more useful to permit linking proprietary applications with 672 | the library. If this is what you want to do, use the GNU Lesser General 673 | Public License instead of this License. But first, please read 674 | . 675 | -------------------------------------------------------------------------------- /README.org: -------------------------------------------------------------------------------- 1 | #+STARTUP: nofold 2 | #+HTML:
3 | 4 | * Archival Notice 5 | As I stopped using Ferdi - and before it, Rambox - I've decided to archive this repository as I will not be developing it further. I hope it'll still be useful to anybody looking to theme their messaging services. 6 | 7 | #+HTML: 8 | 9 | * dark 10 | *Don't burn your eyes!* 11 | 12 | This repository is a collection of dark themes for Rambox, Franz or Ferdi that I use in some messaging services. 13 | 14 | [[https://discord.gg/w49c9Kq][https://img.shields.io/discord/694759343559540757.svg?longCache=true&colorB=7289da&logo=discord&style=flat]] 15 | 16 | 17 | #+HTML:
18 | 19 | ** Applying the themes 20 | 21 | *** Rambox 22 | 23 | *Disclaimer*: I no longer use Rambox but I left this here for everyone who still uses it! 24 | 25 | #+HTML:
26 | 27 | #+HTML: Click to expand! 28 | 29 | First, find the service you wish to apply the theme to 30 | 31 | #+HTML: 32 | 33 | go into the settings for that service 34 | 35 | #+HTML: 36 | 37 | once you're there, click on "Advanced". 38 | 39 | #+HTML: 40 | 41 | A text-box will appear, copy the JavaScript code from [[./rambox/function.js][function.js]] into it, then copy the CSS code for the service you want to theme into the `[paste css here]` area - **don't remove the backticks** - and save your changes! 42 | 43 | #+HTML: 44 | 45 | Then press "Yes" on the service restart popup 46 | 47 | #+HTML: 48 | 49 | and that's it, all done and ready to use! 50 | 51 | #+HTML:
52 | 53 | *** Ferdi/Franz 54 | 55 | #+HTML:
56 | 57 | #+HTML: If you have Git 58 | 59 | Choose a folder where you want to store the themes and run the following commands: 60 | 61 | #+HTML:
62 | #+HTML: Linux/MacOS 63 | 64 | #+BEGIN_SRC bash 65 | $ git clone https://github.com/obvionaoe/dark.git 66 | $ cd dark 67 | $ sh install.sh [app] [service] 68 | #+END_SRC 69 | 70 | Replace ~[app]~ by the application you're using (either Franz or Ferdi) and ~[service]~ by the name of the service you want to theme or by ~all~ to install all of the dark themes. 71 | 72 | #+HTML:
73 | 74 | #+HTML:
75 | 76 | #+HTML: Windows 77 | 78 | #+BEGIN_SRC cmd 79 | $ git clone https://github.com/obvionaoe/dark.git 80 | $ cd dark 81 | $ install.bat [app] [service] 82 | #+END_SRC 83 | 84 | Replace ~[app]~ by the application you're using (either Franz or Ferdi) and ~[service]~ by the name of the service you want to theme or by ~all~ to install all of the dark themes. 85 | 86 | #+HTML:
87 | 88 | To apply the themes, just turn on dark mode inside the service settings. 89 | 90 | #+HTML:
91 | 92 | #+HTML:
93 | 94 | #+HTML: If you don't have Git 95 | 96 | Just copy the ~[service]/darkmode.css~ file, with ~[service]~ being the name of the service you want to update, into the recipe folder of that service. 97 | 98 | To apply the themes, just turn on dark mode inside the service settings. 99 | 100 | #+HTML:
101 | 102 | ** Updating the themes 103 | 104 | *** Rambox 105 | 106 | Same steps you use for applying them in the first place. 107 | 108 | *** Ferdi/Franz 109 | 110 | #+HTML:
111 | #+HTML: If you have Git 112 | 113 | Just run ~git pull origin master~ in the repo folder you cloned and reload the services inside Ferdi, Franz or Rambox. 114 | 115 | #+HTML:
116 | 117 | #+HTML:
118 | #+HTML: If you don't have Git 119 | 120 | Just copy the ~[service]/darkmode.css~ file, with ~[service]~ being the name of the service you want to update, into the recipe folder of that service! 121 | 122 | #+HTML:
123 | 124 | ** Themes 125 | 126 | #+HTML:
127 | #+HTML: 128 | 129 | *Instagram* - forked from *[[https://github.com/vednoc/dark-instagram][vednoc/dark-instagram]]*\\ 130 | (Customized) 131 | 132 | #+HTML:
133 | #+HTML: Screenshot 134 | 135 | #+HTML: 136 | 137 | #+HTML:
138 | #+HTML:
139 | 140 | #+HTML:
141 | #+HTML: 142 | 143 | *Messenger* - forked from *[[https://github.com/cicerakes/DarkNight-FBMessenger][cicerakes/DarkNight-FBMessenger]]*\\ 144 | (Bugfixed and improved) 145 | 146 | #+HTML:
147 | #+HTML: Screenshot 148 | 149 | #+HTML: 150 | 151 | #+HTML:
152 | #+HTML:
153 | 154 | #+HTML:
155 | #+HTML: 156 | 157 | *Telegram* - forked from *[[https://github.com/Barina/Dark-Telegram][Barina/Dark-Telegram]]*\\ 158 | (Customized, bugfixed and optimized performance) 159 | 160 | #+HTML:
161 | #+HTML: Screenshot 162 | 163 | #+HTML: 164 | 165 | #+HTML:
166 | #+HTML:
167 | 168 | #+HTML:
169 | #+HTML: 170 | 171 | *WhatsApp* - forked from *[[https://github.com/vednoc/dark-whatsapp][vednoc/dark-whatsapp]]*\\ 172 | (Customized and optimized performance) 173 | 174 | #+HTML:
175 | #+HTML: Screenshot 176 | 177 | #+HTML: 178 | 179 | #+HTML:
180 | #+HTML:
181 | 182 | ** License 183 | Released under the [[https://github.com/obvionaoe/dark/blob/master/LICENSE][GPL-3.0]] license. 184 | -------------------------------------------------------------------------------- /android-messages/user.css: -------------------------------------------------------------------------------- 1 | :root{ 2 | --side-panel-width: 350px; 3 | --content-width: 1460px; 4 | --content-margin: 0px 21px auto; 5 | } 6 | 7 | @media (min-width: 1440px) { 8 | .main-nav { 9 | min-width: var(--side-panel-width) !important; 10 | width: var(--side-panel-width) !important; 11 | } 12 | 13 | div.content { 14 | max-width: var(--content-width) !important; 15 | margin: var(--content-margin) !important; 16 | } 17 | } -------------------------------------------------------------------------------- /instagram/darkmode.css: -------------------------------------------------------------------------------- 1 | :root:not(#z) { 2 | --note: 'Switching @updateURL to https://userstyles.world platform!\A\A🌚 Dark-Instagram v2.9.1'; 3 | --bshadow: 0 2px 4px var(--shadow); 4 | --t: transparent !important; 5 | --avatar: a_radius; 6 | --ui-font: 'font_name', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, Ubuntu, Cantarell, 'Noto Sans', var(--emoji-font), sans-serif; 7 | --emoji-font: 'font_name', 'joypixels', 'Apple Color Emoji', 'Segoe UI Emoji', 'Segoe UI Symbol', 'Noto Color Emoji'; 8 | --white: #fff; 9 | --dark: #1f232a; 10 | --darken: #252a33; 11 | --darker: #333943; 12 | --light: #e9e9e9; 13 | --lighter: #a1a1a1; 14 | --accent: #7289da; 15 | --shadow: rgba(0,0,0,0.145); 16 | --yellow: #e5c512; 17 | --orange: #df4b16; 18 | --red: #dc322f; 19 | --magenta: #f33682; 20 | --violet: #6c71c4; 21 | --blue: #268bd2; 22 | --cyan: #2aa198; 23 | --green: #859900; 24 | --dark-rgb: 31,35,42; 25 | --darken-rgb: 37,42,51; 26 | --darker-rgb: 51,57,67; 27 | --light-rgb: 233,233,233; 28 | --lighter-rgb: 161,161,161; 29 | --accent-rgb: 114,137,218; 30 | --shadow-rgb: 0,0,0; 31 | --white-rgb: 255,255,255; 32 | --b6a: var(--darker-rgb); 33 | --b38: var(--darker-rgb); 34 | --ce3: var(--darker-rgb); 35 | --ca6: var(--darker-rgb); 36 | --d87: var(--darken-rgb); 37 | --f23: var(--darken-rgb); 38 | --b3f: var(--dark-rgb); 39 | --i1d: var(--light-rgb); 40 | --f75: var(--light-rgb); 41 | --f52: var(--lighter-rgb); 42 | --bb2: var(--darken-rgb); 43 | --f23: var(--dark-rgb); 44 | --fe0: var(--accent-rgb); 45 | --d69: var(--accent-rgb); 46 | --c37: var(--accent-rgb); 47 | --eca: var(--darken-rgb); 48 | --jb7: var(--shadow-rgb); 49 | --fa7: var(--darken-rgb); 50 | --de5: var(--white-rgb); 51 | } 52 | ::-webkit-scrollbar { 53 | width: 0.5em; 54 | } 55 | * { 56 | scrollbar-width: thin; 57 | } 58 | html { 59 | scrollbar-color: var(--accent) rgba(136,136,136,0.082); 60 | } 61 | ::-webkit-scrollbar { 62 | background-color: rgba(136,136,136,0.082) !important; 63 | } 64 | ::-webkit-scrollbar-thumb { 65 | background-color: var(--accent) !important; 66 | } 67 | body { 68 | color: var(--light) !important; 69 | background-color: var(--dark) !important; 70 | } 71 | body ::placeholder { 72 | color: var(--lighter) !important; 73 | } 74 | body ::-webkit-input-placeholder { 75 | color: var(--lighter) !important; 76 | } 77 | body, 78 | body button, 79 | body input, 80 | body textarea { 81 | font-family: var(--ui-font) !important; 82 | } 83 | body[style *= 'background: white'] { 84 | background-color: var(--dark) !important; 85 | } 86 | body[style *= 'background: white'] svg { 87 | fill: var(--lighter) !important; 88 | } 89 | body[class *= 'error'] .top-bar, 90 | body[class *= '404'] .top-bar { 91 | color: var(--light) !important; 92 | border-color: var(--darker) !important; 93 | background-color: var(--darken) !important; 94 | } 95 | body[class *= 'error'] .top-bar .logo, 96 | body[class *= '404'] .top-bar .logo { 97 | filter: invert(0.8) !important; 98 | } 99 | body[class *= 'error'] a, 100 | body[class *= '404'] a, 101 | body[class *= 'error'] strong, 102 | body[class *= '404'] strong { 103 | color: var(--accent) !important; 104 | } 105 | body svg[fill = '#262626'] { 106 | fill: var(--light); 107 | } 108 | body svg[fill = '#ffffff'] { 109 | fill: var(--light); 110 | } 111 | body svg[fill = '#8e8e8e'] { 112 | fill: var(--lighter); 113 | } 114 | body svg[fill = '#ed4956'] { 115 | fill: var(--red); 116 | } 117 | body svg[fill = '#0095f6'] { 118 | fill: var(--blue); 119 | } 120 | body svg path { 121 | transition: fill-opacity 0.2s ease; 122 | } 123 | body svg:hover path { 124 | fill-opacity: 0.6; 125 | } 126 | body .coreSpriteLoggedOutWordmark, 127 | body .coreSpriteMobileNavDirect, 128 | body .coreSpriteTaggedNull { 129 | filter: invert(0.8) !important; 130 | } 131 | [class *= 'SpriteDirect'], 132 | [class *= 'SpriteFacebook'], 133 | [class *= 'SpriteLink'], 134 | [class *= 'SpriteMail'], 135 | [class *= 'SpriteApp'], 136 | [class *= 'Spritez'], 137 | [class *= 'SpriteKeyhole'], 138 | [class *= 'SpriteLock_'], 139 | [class *= 'SpriteFriend_'], 140 | [class *= 'SpriteAdd_friend_'], 141 | [class *= 'SpriteDropdownArrowGrey'], 142 | [class *= 'SpritePagingChevron'], 143 | [class *= 'SpriteCamera'], 144 | [class *= 'SpriteProfileChannelNullState'], 145 | [class *= 'SpriteLocation_'], 146 | [class *= 'SpriteInfo__filled__16__grey'], 147 | [class *= 'SpriteCircle_add'] { 148 | filter: invert(0.8) !important; 149 | } 150 | img[src *= '44884218_345707102882519_2446069589734326272'] { 151 | filter: invert(0.8) !important; 152 | } 153 | body ._2Lks6 { 154 | color: var(--accent) !important; 155 | } 156 | body nav a[href = '/'] img, 157 | [src *= 'logo.png'] { 158 | filter: invert(0.8); 159 | } 160 | body .HZ802, 161 | body .nHGTw { 162 | color: var(--white) !important; 163 | background-color: var(--accent) !important; 164 | } 165 | body .HZ802 .H9zXO::after, 166 | body .nHGTw .H9zXO::after { 167 | background-color: var(--accent) !important; 168 | } 169 | .iMofo { 170 | box-shadow: 0 4px 16px var(--shadow) !important; 171 | } 172 | body .HZ802 [class *= 'Sprite'] + div > div, 173 | body .nHGTw [class *= 'Sprite'] + div > div { 174 | color: var(--white) !important; 175 | } 176 | body > [role = 'presentation'], 177 | body > [role = 'dialog'] { 178 | background: rgba(var(--b3f), 0.8) !important; 179 | } 180 | .not-logged-in .N9d2H { 181 | display: none !important; 182 | } 183 | .not-logged-in [style *= 'overflow: hidden'] { 184 | overflow: unset !important; 185 | } 186 | .not-logged-in [style *= 'overflow: hidden'] > [role = 'presentation'] { 187 | display: none !important; 188 | } 189 | body .LFGs8 { 190 | color: var(--accent) !important; 191 | } 192 | body .yQ0j1 { 193 | color: var(--lighter) !important; 194 | } 195 | body .M-jxE, 196 | body .M-jxE > button { 197 | background-color: var(--darken) !important; 198 | } 199 | body ._4Kbb_ { 200 | margin-top: 1rem; 201 | color: var(--light) !important; 202 | border-color: var(--darker) !important; 203 | background-color: var(--darken) !important; 204 | } 205 | .hUQXy, 206 | .hUQXy:visited { 207 | color: var(--accent) !important; 208 | } 209 | body .jju9v { 210 | border: 1px solid var(--darker); 211 | color: var(--light) !important; 212 | background-color: var(--darken) !important; 213 | } 214 | body .hI7cq { 215 | color: var(--light) !important; 216 | } 217 | body .isgrP > ul { 218 | background-color: var(--t) !important; 219 | } 220 | body ._7LpC8 a, 221 | body .rin8p { 222 | color: var(--accent) !important; 223 | } 224 | body .rb9ad, 225 | body .-wdIA, 226 | body .d-Vzv { 227 | border-color: var(--darker) !important; 228 | } 229 | body .leaflet-container { 230 | background-color: var(--darken) !important; 231 | box-shadow: 0 1px var(--darker); 232 | } 233 | body .leaflet-tile { 234 | filter: invert(0.9) hue-rotate(180deg) !important; 235 | } 236 | body .leaflet-popup-content-wrapper, 237 | body .leaflet-popup-tip { 238 | background-color: var(--darken) !important; 239 | box-shadow: 0 3px 14px var(--shadow); 240 | } 241 | body .Sux9m { 242 | border-color: #aaa !important; 243 | background-color: rgba(238,238,238,0.067) !important; 244 | --eca: var(--light-rgb); 245 | } 246 | body .Sux9m ::placeholder { 247 | color: #eee !important; 248 | } 249 | body .Sux9m ::-webkit-input-placeholder { 250 | color: #eee !important; 251 | } 252 | body .Sux9m + div [class*='glyphsSpriteDirect_'] { 253 | filter: invert(0.3) !important; 254 | } 255 | body .tCibT { 256 | border: 1px solid var(--darker) !important; 257 | box-shadow: var(--bshadow) !important; 258 | } 259 | .R8iOs { 260 | border: 1px solid var(--darker) !important; 261 | color: var(--light) !important; 262 | background-color: var(--dark) !important; 263 | } 264 | .R8iOs > * { 265 | color: inherit; 266 | } 267 | [role='button'] + span[class=''] > div[class], 268 | .G_hoz { 269 | background-color: var(--darker) !important; 270 | } 271 | body header + div + div.GZkEI li[style] > div > div > [role], 272 | body article + div + div.GZkEI li[style] > div > div > [role] { 273 | --d87: var(--dark-rgb); 274 | } 275 | body .WidCF, 276 | body .HaS-3 { 277 | border-right: 1px solid var(--darker); 278 | background-size: 200% 200% !important; 279 | background: linear-gradient(115deg, var(--dark) 40%, var(--darken), var(--dark) 60%); 280 | animation: Loader 2.5s ease infinite !important; 281 | background-color: var(--darken) !important; 282 | } 283 | body > [role = 'dialog'] > [role = 'dialog'] > [role = 'dialog'] { 284 | border: 1px solid var(--darker) !important; 285 | box-shadow: 0 0px 16px var(--darken); 286 | } 287 | body [role = 'dialog'] > article > header { 288 | overflow-x: hidden !important; 289 | } 290 | body [role = 'dialog'] > article > header + div { 291 | --jb7: var(--darken-rgb); 292 | } 293 | body > [role = 'presentation'] > [role = 'dialog'] > div { 294 | border: 1px solid var(--darker) !important; 295 | } 296 | body > [role = 'presentation'] button.aOOlW:not(.SRPMb):hover, 297 | body > [role = 'presentation'] button.aOOlW:not(.SRPMb):active { 298 | background-color: var(--darken) !important; 299 | } 300 | body article > header ~ div .WXPwG .Yi5aA { 301 | background-color: var(--white) !important; 302 | } 303 | body img + div[style = 'height: 100%;'], 304 | body video + div[style = 'height: 100%;'] { 305 | position: unset !important; 306 | display: none !important; 307 | } 308 | body ._9AhH0 { 309 | position: unset !important; 310 | } 311 | body .PyenC, 312 | body .fXIG0 { 313 | bottom: 40px !important; 314 | } 315 | body .GBPOY { 316 | border-radius: 3px; 317 | border-color: var(--darker) !important; 318 | background-color: var(--darken) !important; 319 | } 320 | body .GBPOY a { 321 | color: var(--light) !important; 322 | } 323 | body .uo5MA, 324 | body .uo5MA > div:nth-child(1) { 325 | box-shadow: var(--bshadow) !important; 326 | border: 1px solid var(--darker); 327 | background-color: var(--dark) !important; 328 | } 329 | body .uo5MA > div:nth-child(2) { 330 | background-color: var(--dark) !important; 331 | } 332 | body .uo5MA > div:nth-child(3) { 333 | border-radius: 0 0 6px 6px; 334 | } 335 | body .uo5MA .DPiy6 { 336 | background-color: var(--t) !important; 337 | } 338 | body .QOqBd { 339 | background-color: rgba(136,136,136,0.067) !important; 340 | } 341 | .X3a-9 { 342 | background-color: var(--dark) !important; 343 | } 344 | body .CMoMH:not(._6FEQj) { 345 | background-color: var(--dark) !important; 346 | } 347 | body .CMoMH._6FEQj { 348 | background-color: var(--darker) !important; 349 | } 350 | body [role='listbox'] [aria-hidden='false'] > [style*='left: calc('] + div { 351 | --eca: var(--white-rgb) !important; 352 | } 353 | body .XjicZ { 354 | border-top: 1px solid var(--darker); 355 | background-color: var(--darken) !important; 356 | } 357 | body .XjicZ p { 358 | color: var(--light) !important; 359 | } 360 | body footer { 361 | width: 100% !important; 362 | margin: 0 auto !important; 363 | max-width: 935px !important; 364 | border-top: 1px solid var(--darker) !important; 365 | } 366 | .XfvCs { 367 | margin-bottom: 30px !important; 368 | } 369 | body footer > div::after { 370 | content: var(--note); 371 | text-align: center; 372 | margin-top: 2rem; 373 | } 374 | @keyframes Loader { 375 | 0% { 376 | background-position: 33% 0%; 377 | } 378 | 50% { 379 | background-position: 68% 100%; 380 | } 381 | 100% { 382 | background-position: 33% 0%; 383 | } 384 | } 385 | 386 | /* my changes */ 387 | 388 | :root:not(#z) { 389 | --signature: 'dark by obvionaoe'; 390 | scrollbar-color: var(--accent) transparent; 391 | } 392 | 393 | :root ::-webkit-scrollbar { 394 | background-color: transparent !important; 395 | width: 0 !important; 396 | } 397 | :root ::-webkit-scrollbar-thumb { 398 | background-color: var(--accent) !important; 399 | } 400 | div.Igw0E.IwRSH.eGOV_._4EzTm._5VUwz.ZUqME ::-webkit-scrollbar, 401 | div.N9abW::-webkit-scrollbar, 402 | div.frMpI.-sxBV::-webkit-scrollbar { 403 | background-color: transparent !important; 404 | width: .5em !important; 405 | } 406 | div.N9abW::-webkit-scrollbar-thumb, 407 | div.Igw0E.IwRSH.eGOV_._4EzTm._5VUwz.ZUqME ::-webkit-scrollbar-thumb, 408 | div.frMpI.-sxBV::-webkit-scrollbar-thumb { 409 | background-color: var(--accent) !important; 410 | } 411 | 412 | div.frMpI.-sxBV { 413 | padding: 20px 30px 0 20px !important; 414 | } 415 | 416 | .DINPA::after { 417 | content: " \A\A " '🌛 ' var(--signature) !important; 418 | white-space: pre !important; 419 | } 420 | 421 | body footer nav + span::before, 422 | .copyright::before { 423 | content: '🌛 ' var(--signature) !important; 424 | font-size: 14px !important; 425 | text-transform: initial !important; 426 | } 427 | 428 | button.sXUSN:hover { 429 | cursor: pointer !important; 430 | } -------------------------------------------------------------------------------- /install.bat: -------------------------------------------------------------------------------- 1 | :: This is really bad but I don't really have time to learn batch right now, please forgive me xD 2 | 3 | if %1=="Ferdi" ( 4 | if %2=="all" ( 5 | mklink "%AppData%\Ferdi\recipes\instagram\darkmode.css" "instagram\darkmode.css" && echo "Installed Instagram theme successfully" 6 | mklink "%AppData%\Ferdi\recipes\messenger\darkmode.css" "messenger\darkmode.css" && echo "Installed Messenger theme successfully" 7 | mklink "%AppData%\Ferdi\recipes\telegram\darkmode.css" "telegram\darkmode.css" && echo "Installed Telegram theme successfully" 8 | mklink "%AppData%\Ferdi\recipes\whatsapp\darkmode.css" "whatsapp\darkmode.css" && echo "Installed WhatsApp theme successfully" 9 | ) 10 | else ( 11 | mklink "%AppData%\Ferdi\recipes\%2\darkmode.css" "%1\darkmode.css" && echo "Installed %2 theme successfully" 12 | ) 13 | ) 14 | 15 | if %1=="Franz" ( 16 | if %2=="all" ( 17 | mklink "%AppData%\Franz\recipes\instagram\darkmode.css" "instagram\darkmode.css" && echo "Installed Instagram theme successfully" 18 | mklink "%AppData%\Franz\recipes\messenger\darkmode.css" "messenger\darkmode.css" && echo "Installed Messenger theme successfully" 19 | mklink "%AppData%\Franz\recipes\telegram\darkmode.css" "telegram\darkmode.css" && echo "Installed Telegram theme successfully" 20 | mklink "%AppData%\Franz\recipes\whatsapp\darkmode.css" "whatsapp\darkmode.css" && echo "Installed WhatsApp theme successfully" 21 | ) 22 | else ( 23 | mklink "%AppData%\Franz\recipes\%2\darkmode.css" "%1\darkmode.css" && echo "Installed %2 theme successfully" 24 | ) 25 | ) 26 | 27 | if %1=="ferdi" ( 28 | if %2=="all" ( 29 | mklink "%AppData%\Ferdi\recipes\instagram\darkmode.css" "instagram\darkmode.css" && echo "Installed Instagram theme successfully" 30 | mklink "%AppData%\Ferdi\recipes\messenger\darkmode.css" "messenger\darkmode.css" && echo "Installed Messenger theme successfully" 31 | mklink "%AppData%\Ferdi\recipes\telegram\darkmode.css" "telegram\darkmode.css" && echo "Installed Telegram theme successfully" 32 | mklink "%AppData%\Ferdi\recipes\whatsapp\darkmode.css" "whatsapp\darkmode.css" && echo "Installed WhatsApp theme successfully" 33 | ) 34 | else ( 35 | mklink "%AppData%\Ferdi\recipes\%2\darkmode.css" "%1\darkmode.css" && echo "Installed %2 theme successfully" 36 | ) 37 | ) 38 | 39 | if %1=="franz" ( 40 | if %2=="all" ( 41 | mklink "%AppData%\Franz\recipes\instagram\darkmode.css" "instagram\darkmode.css" && echo "Installed Instagram theme successfully" 42 | mklink "%AppData%\Franz\recipes\messenger\darkmode.css" "messenger\darkmode.css" && echo "Installed Messenger theme successfully" 43 | mklink "%AppData%\Franz\recipes\telegram\darkmode.css" "telegram\darkmode.css" && echo "Installed Telegram theme successfully" 44 | mklink "%AppData%\Franz\recipes\whatsapp\darkmode.css" "whatsapp\darkmode.css" && echo "Installed WhatsApp theme successfully" 45 | ) 46 | else ( 47 | mklink "%AppData%\Franz\recipes\%2\darkmode.css" "%1\darkmode.css" && echo "Installed %2 theme successfully" 48 | ) 49 | ) -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | app=${1,,} 4 | app=${app^} 5 | 6 | service=${2,,} 7 | 8 | if [ $service == "all" ] 9 | then 10 | ln -s "$PWD/instagram/darkmode.css" "$HOME/.config/$app/recipes/instagram/darkmode.css" && echo -e "Installed Instagram theme successfully \xE2\x9C\x85\x00" 11 | ln -s "$PWD/messenger/darkmode.css" "$HOME/.config/$app/recipes/messenger/darkmode.css" && echo -e "Installed Messenger theme successfully \xE2\x9C\x85\x00" 12 | ln -s "$PWD/telegram/darkmode.css" "$HOME/.config/$app/recipes/telegram/darkmode.css" && echo -e "Installed Telegram theme successfully \xE2\x9C\x85\x00" 13 | ln -s "$PWD/whatsapp/darkmode.css" "$HOME/.config/$app/recipes/whatsapp/darkmode.css" && echo -e "Installed WhatsApp theme successfully \xE2\x9C\x85\x00" 14 | else 15 | ln -s "$PWD/$service/darkmode.css" "$HOME/.config/$app/recipes/$service/darkmode.css" && echo -e "Installed $service theme successfully \xE2\x9C\x85\x00" 16 | fi -------------------------------------------------------------------------------- /messenger/darkmode.css: -------------------------------------------------------------------------------- 1 | 2 | :root, .__fb-light-mode { 3 | --card-background: #1e1e1e; 4 | --comment-background: #292929; 5 | --card-background-flat: #292929; 6 | --disabled-button-background: #373737; 7 | --divider: #4d4d4d; 8 | --hosted-view-selected-state: #1D2731; 9 | --hover-overlay: rgba(255, 255, 255, 0.05); 10 | --media-inner-border: rgba(255, 255, 255, 0.1); 11 | --messenger-card-background: #1e1e1e; 12 | --messenger-reply-background: #2a2a2a; 13 | --overlay-alpha-80: rgba(41, 41, 41, 0.8); 14 | --popover-background: #1e1e1e; 15 | --primary-icon: #cecece; 16 | --primary-text: #cecece; 17 | --scroll-thumb: #5d5d5d; 18 | --secondary-button-background: #353535; 19 | --secondary-icon: #999; 20 | --secondary-text: #999; 21 | --shadow-1: rgba(0, 0, 0, 0.3); 22 | --shadow-2: rgba(0, 0, 0, 0.4); 23 | --shadow-5: rgba(0, 0, 0, 0.7); 24 | --shadow-8: rgba(0, 0, 0, 1); 25 | --shadow-inset: rgba(000, 000, 000, 0.5); 26 | --surface-background: #1e1e1e; 27 | --wash: #373737; 28 | --web-wash: #1e1e1e; 29 | } 30 | 31 | body { 32 | color: #cecece; 33 | } 34 | 35 | /* Delivered icon on left*/ 36 | .rq0escxv.l9j0dhe7.du4w35lb.j83agx80.cbu4d94t.pfnyh3mw.d2edcug0.hpfvmrgz.aovydwv3.p8cu3f6v.kb5gq1qc.taijpn5t.b0upgy8r path, .l9j0dhe7.swg4t2nn path, .a8c37x1j.ms05siws.hwsy1cff.b7h9ocf4 path { 37 | fill: #cecece; 38 | } 39 | 40 | path[d="M0 36h36V0H0z"] { 41 | fill: none !important; 42 | } 43 | 44 | /* Icons */ 45 | path[d="M18 30c-6.627 0-12-5.372-12-12 0-6.627 5.373-12 12-12 6.628 0 12 5.373 12 12 0 6.628-5.372 12-12 12zm5.294-16.707l-7.296 7.295-3.254-3.252c-.352-.353-.919-.439-1.323-.148a1 1 0 00-.128 1.522l3.998 3.997a1 1 0 001.414 0l8.002-8.001a1 1 0 10-1.413-1.413z"] { 46 | fill: #999; 47 | } 48 | 49 | .sp_o5t_XtHjhxN_1_5x { 50 | filter: invert(.8); 51 | } 52 | 53 | /* App download */ 54 | .oajrlxb2.q2y6ezfg.gcieejh5.bn081pho.humdl8nn.izx4hr6d.rq0escxv.nhd2j8a9.j83agx80.p7hjln8o.kvgmc6g5.cxmmr5t8.oygrvhab.hcukyx3x.jb3vyjys.d1544ag0.qt6c0cv9.tw6a2znq.i1ao9s8h.esuyzwwr.f1sip0of.lzcic4wl.l9j0dhe7.abiwlrkh.p8dawk7l.beltcj47.p86d2i9g.aot14ch1.kzx2olss.cbu4d94t.taijpn5t.ni8dbmo4.stjgntxs.k4urcfbm.tv7at329 { 55 | background: #1e1e1e; 56 | } 57 | 58 | .sn0e7ne5 { 59 | box-shadow: rgba(0, 0, 0, 0.6) 0px 0px 2px; 60 | } 61 | 62 | /* Middle header */ 63 | .bafdgad4 { 64 | box-shadow: 0 0 4px rgba(0,0,0,.7) 65 | } 66 | 67 | /* Pop-up close icon */ 68 | .sp_GOPGoqMu6Pq_1_5x { 69 | filter: invert(.8); 70 | } 71 | 72 | /* Feedback icons */ 73 | .sp_BQbKIpOzOAx_1_5x, .sp_a51jIvPl6dA_1_5x { 74 | filter: invert(.8); 75 | } 76 | 77 | /* Reacts */ 78 | .tlilfck6 { 79 | box-shadow: 0 2px 4px var(--shadow-2); 80 | } 81 | 82 | /*[[ccb]]*/ 83 | 84 | ::-webkit-scrollbar { 85 | width: 0 !important; 86 | } 87 | 88 | /* messages scrollbar */ 89 | div.buofh1pr.j83agx80.eg9m0zos.ni8dbmo4.cbu4d94t.gok29vw1::-webkit-scrollbar { 90 | width: 0.55em !important; 91 | } 92 | div.buofh1pr.j83agx80.eg9m0zos.ni8dbmo4.cbu4d94t.gok29vw1::-webkit-scrollbar-thumb { 93 | background: var(--scroll-thumb) !important; 94 | border-radius: 20px !important; 95 | } 96 | 97 | /* emojis */ 98 | div._4f4q { 99 | background: none !important; 100 | } -------------------------------------------------------------------------------- /rambox/function.js: -------------------------------------------------------------------------------- 1 | function applycss(css){ 2 | var head = document.getElementsByTagName('head')[0]; 3 | var s = document.createElement('style'); 4 | s.setAttribute('type', 'text/css'); 5 | s.appendChild(document.createTextNode(css)); 6 | head.appendChild(s); 7 | } 8 | 9 | applycss(`[paste css here]`); -------------------------------------------------------------------------------- /whatsapp/darkmode.css: -------------------------------------------------------------------------------- 1 | :root:not(#z), 2 | .dark:not(#z) { 3 | --version: '🌚 Dark-WhatsApp Lite 3.5.0 — December 10th, 2020'; 4 | --changes: '\A https://github.com/vednoc/dark-whatsapp\A\A\AP.S. CSS can not add links, only fake/pseudo text.'; 5 | --ui-font: 'font_name', Segoe UI, Helvetica Neue, Helvetica, Lucida Grande, Arial, Ubuntu, Cantarell, Fira Sans, sans-serif; 6 | --r-menus: 4px; 7 | --r-inputs: 24px; 8 | --r-avatars: 50%; 9 | --c-m-hover: 0.6s; 10 | --c-m-delay: 1.2s; 11 | --blur-in: 0.4s; 12 | --blur-out: 0.2s; 13 | --app-width: 1396px; 14 | --emoji-o: 0.8; 15 | --bg-image: url("https://raw.githubusercontent.com/vednoc/dark-whatsapp/master/images/bg-blur-high.jpg"); 16 | --bg-opacity: 0.4; 17 | --bg-blur: 0px; 18 | --bg-blur-s: calc(-2 * var(--bg-blur)); 19 | --bg-hue: 320deg; 20 | --bg-invert: 0; 21 | --bg-size: cover; 22 | --bg-pos: center; 23 | --bg-rep: no-repeat; 24 | --chat-image: url("https://web.whatsapp.com/img/bg-chat-tile_9e8a2898faedb7db9bf5638405cf81ae.png"); 25 | --chat-bg-o: 0.15; 26 | --chat-bg-i: 0.6; 27 | --chat-bg-s: initial; 28 | --chat-bg-p: top left; 29 | --chat-bg-r: repeat; 30 | --msg-in-0: var(--bg-4); 31 | --msg-in-0-rgb: var(--bg-4-rgb); 32 | --msg-in-1: var(--bg-3); 33 | --msg-in-1-rgb: var(--bg-3-rgb); 34 | --msg-out-0: var(--ac-4); 35 | --msg-out-0-rgb: var(--ac-4-rgb); 36 | --msg-out-1: var(--ac-5); 37 | --msg-out-1-rgb: var(--ac-5-rgb); 38 | --msg-ack: var(--ac-0); 39 | --msg-ack-rgb: var(--ac-0-rgb); 40 | --gray-30: var(--bg-5); 41 | --gray-30-rgb: var(--bg-5-rgb); 42 | --gray-700: var(--fg-4); 43 | --gray-700-rgb: var(--fg-4-rgb); 44 | --pale-blue-green: var(--b6-4); 45 | --pale-blue-green-rgb: var(--b6-4-rgb); 46 | --pale-green: var(--b4-4); 47 | --pale-green-rgb: var(--b4-4-rgb); 48 | --pale-yellow: var(--b3-4); 49 | --pale-yellow-rgb: var(--b3-4-rgb); 50 | --teal: var(--ac-0); 51 | --teal-rgb: var(--ac-0-rgb); 52 | --teal-light: var(--ac-1); 53 | --teal-light-rgb: var(--ac-1-rgb); 54 | --teal-lighter: var(--ac-2); 55 | --teal-lighter-rgb: var(--ac-2); 56 | --green-deep: var(--ac-2); 57 | --green-deep-rgb: var(--ac-2-rgb); 58 | --blue-ocean: var(--bg-2); 59 | --blue-ocean-rgb: var(--bg-2-rgb); 60 | --active-tab-marker: var(--ac-0); 61 | --active-tab-marker-rgb: var(--ac-0-rgb); 62 | --app-background-stripe: var(--bg-1); 63 | --app-background-stripe-rgb: var(--bg-1-rgb); 64 | --app-background: var(--bg-0); 65 | --app-background-rgb: var(--bg-0-rgb); 66 | --app-background-deeper: var(--bg-0); 67 | --app-background-deeper-rgb: var(--bg-0-rgb); 68 | --attach-media-drop-border: var(--fg-3); 69 | --attach-media-drop-border-rgb: var(--fg-3-rgb); 70 | --attach-media-drop-overlay: var(--bg-2); 71 | --attach-media-drop-overlay-rgb: var(--bg-2-rgb); 72 | --audio-progress-incoming: var(--b4-0); 73 | --audio-progress-incoming-rgb: var(--b4-0-rgb); 74 | --audio-progress-outgoing: var(--ac-2); 75 | --audio-progress-outgoing-rgb: var(--ac-2-rgb); 76 | --audio-progress-played-incoming: var(--b6-0); 77 | --audio-progress-played-incoming-rgb: var(--b6-0-rgb); 78 | --audio-progress-played-outgoing: var(--b6-0); 79 | --audio-progress-played-outgoing-rgb: var(--b6-0-rgb); 80 | --audio-track-incoming: var(--fg-4); 81 | --audio-track-incoming-rgb: var(--fg-4-rgb); 82 | --audio-track-outgoing: var(--fg-4); 83 | --audio-track-outgoing-rgb: var(--fg-4-rgb); 84 | --avatar-background: var(--bg-1); 85 | --avatar-background-rgb: var(--bg-1-rgb); 86 | --avatar-border: var(--bg-3); 87 | --avatar-border-rgb: var(--bg-3-rgb); 88 | --avatar-placeholder-background: var(--bg-5); 89 | --avatar-placeholder-background-rgb: var(--bg-5-rgb); 90 | --avatar-placeholder-primary: var(--fg-3); 91 | --avatar-placeholder-primary-rgb: var(--fg-3-rgb); 92 | --background-default: var(--bg-2); 93 | --background-default-rgb: var(--bg-2-rgb); 94 | --background-default-active: var(--bg-4); 95 | --background-default-active-rgb: var(--bg-4-rgb); 96 | --background-default-hover: var(--bg-3); 97 | --background-default-hover-rgb: var(--bg-3-rgb); 98 | --border-bubble: var(--shadow); 99 | --border-bubble-rgb: var(--shadow-rgb); 100 | --border-default: var(--bg-3); 101 | --border-default-rgb: var(--bg-3-rgb); 102 | --border-list: var(--bg-3); 103 | --border-list-rgb: var(--bg-3-rgb); 104 | --border-panel: var(--bg-5); 105 | --border-panel-rgb: var(--bg-5-rgb); 106 | --border-strong: var(--bg-5); 107 | --border-strong-rgb: var(--bg-5-rgb); 108 | --border-stronger: var(--bg-5); 109 | --border-stronger-rgb: var(--fg-5-rgb); 110 | --bubble-meta: var(--fg-3); 111 | --bubble-meta-rgb: var(--fg-3-rgb); 112 | --bubble-meta-icon: var(--fg-3); 113 | --bubble-meta-icon-rgb: var(--fg-3-rgb); 114 | --butterbar-battery-background: var(--b1-4); 115 | --butterbar-battery-background-rgb: var(--b1-4-rgb); 116 | --butterbar-battery-icon: var(--b1-0); 117 | --butterbar-battery-icon-rgb: var(--b1-0-rgb); 118 | --butterbar-battery-primary: var(--fg-0); 119 | --butterbar-battery-primary-rgb: var(--fg-0-rgb); 120 | --butterbar-battery-secondary: var(--fg-4); 121 | --butterbar-battery-secondary-rgb: var(--fg-4-rgb); 122 | --butterbar-connection-background: var(--b3-4); 123 | --butterbar-connection-background-rgb: var(--b3-4-rgb); 124 | --butterbar-connection-primary: var(--fg-0); 125 | --butterbar-connection-primary-rgb: var(--fg-0-rgb); 126 | --butterbar-connection-secondary: var(--fg-4); 127 | --butterbar-connection-secondary-rgb: var(--fg-4-rgb); 128 | --butterbar-default-background: var(--b6-4); 129 | --butterbar-default-background-rgb: var(--b6-4); 130 | --butterbar-icon: var(--b3-0); 131 | --butterbar-icon-rgb: var(--b3-0-rgb); 132 | --butterbar-notification-icon: var(--b6-0); 133 | --butterbar-notification-icon-rgb: var(--b6-0-rgb); 134 | --butterbar-primary: var(--fg-0); 135 | --butterbar-primary-rgb: var(--fg-0-rgb); 136 | --butterbar-secondary: var(--fg-4); 137 | --butterbar-secondary-rgb: var(--fg-4-rgb); 138 | --butterbar-update-background: var(--b4-4); 139 | --butterbar-update-background-rgb: var(--b4-4-rgb); 140 | --butterbar-update-icon: var(--b4-0); 141 | --butterbar-update-icon-rgb: var(--b4-0-rgb); 142 | --button-alternative: var(--ac-1); 143 | --button-alternative-rgb: var(--ac-1-rgb); 144 | --button-alternative-background: var(--bg-3); 145 | --button-alternative-background-rgb: var(--bg-3-rgb); 146 | --button-background-disabled: var(--bg-2); 147 | --button-background-disabled-rgb: var(--bg-2-rgb); 148 | --button-bubble: var(--ac-0); 149 | --button-bubble-rgb: var(--ac-0-rgb); 150 | --button-plain-background: var(--bg-4); 151 | --button-plain-background-rgb: var(--bg-4-rgb); 152 | --button-primary: var(--white); 153 | --button-primary-rgb: var(--white-rgb); 154 | --button-primary-background: var(--ac-0); 155 | --button-primary-background-rgb: var(--ac-0-rgb); 156 | --button-primary-background-hover: var(--ac-3); 157 | --button-primary-background-hover-rgb: var(--ac-3-rgb); 158 | --button-round-background: var(--ac-0); 159 | --button-round-background-rgb: var(--ac-0-rgb); 160 | --button-secondary: var(--ac-0); 161 | --button-secondary-rgb: var(--ac-0-rgb); 162 | --button-secondary-background: transparent; 163 | --button-secondary-background-rgb: 0, 0, 0; 164 | --button-secondary-background-hover: rgba(241,241,242,0.051); 165 | --button-secondary-background-hover-rgb: var(--fg-3-rgb); 166 | --button-secondary-hover: var(--ac-0); 167 | --button-secondary-hover-rgb: var(--ac-0-rgb); 168 | --chat-marker: var(--fg-3); 169 | --chat-marker-rgb: var(--fg-3-rgb); 170 | --chat-marker-admin: var(--ac-0); 171 | --chat-marker-admin-rgb: var(--ac-0-rgb); 172 | --chat-marker-admin-border: var(--ac-0); 173 | --chat-marker-admin-border-rgb: var(--ac-0-rgb); 174 | --chat-marker-border: var(--fg-3); 175 | --chat-marker-border-rgb: var(--fg-3-rgb); 176 | --chatlist-icon: var(--fg-5); 177 | --chatlist-icon-rgb: var(--fg-5-rgb); 178 | --checkbox-background: var(--ac-0); 179 | --checkbox-background-rgb: var(--ac-0-rgb); 180 | --checkbox-mark: var(--white); 181 | --checkbox-mark-rgb: var(--white-rgb); 182 | --compose-input-background-focused: var(--bg-0); 183 | --compose-input-background-focused-rgb: var(--bg-0-rgb); 184 | --compose-input-background: var(--bg-1); 185 | --compose-input-background-rgb: var(--bg-1-rgb); 186 | --compose-input-border: var(--bg-5); 187 | --compose-input-border-rgb: var(--bg-5-rgb); 188 | --compose-input-border-focused: var(--bg-5); 189 | --compose-input-border-focused-rgb: var(--bg-5-rgb); 190 | --compose-panel-background: var(--bg-3); 191 | --compose-panel-background-rgb: var(--bg-3-rgb); 192 | --compose-panel-background-hover: var(--bg-4); 193 | --compose-panel-background-hover-rgb: var(--ac-4-rgb); 194 | --compose-primary: var(--fg-1); 195 | --compose-primary-rgb: var(--fg-1-rgb); 196 | --conversation-panel-background: var(--bg-1); 197 | --conversation-panel-background-rgb: var(--bg-1-rgb); 198 | --conversation-panel-border: var(--bg-5); 199 | --conversation-panel-border-rgb: var(--fg-3-rgb); 200 | --danger: var(--b1-0); 201 | --danger-rgb: var(--b1-0-rgb); 202 | --drawer-background: var(--bg-1); 203 | --drawer-background-rgb: var(--bg-1-rgb); 204 | --drawer-background-deep: var(--bg-0); 205 | --drawer-background-deep-rgb: var(--bg-0-rgb); 206 | --drawer-gallery-background: var(--bg-1); 207 | --drawer-gallery-background-rgb: var(--bg-1-rgb); 208 | --drawer-gallery-background-active: var(--bg-0); 209 | --drawer-gallery-background-active-rgb: var(--bg-0-rgb); 210 | --drawer-gallery-background-hover: var(--bg-0); 211 | --drawer-gallery-background-hover-rgb: var(--bg-0-rgb); 212 | --drawer-header-title: var(--fg-1); 213 | --drawer-header-title-rgb: var(--fg-1-rgb); 214 | --drawer-section-background: var(--bg-2); 215 | --drawer-section-background-rgb: var(--bg-2-rgb); 216 | --dropdown-background: var(--bg-2); 217 | --dropdown-background-rgb: var(--bg-2-rgb); 218 | --dropdown-background-hover: var(--bg-3); 219 | --dropdown-background-hover-rgb: var(--bg-3-rgb); 220 | --empty-state-background: var(--bg-3); 221 | --empty-state-background-rgb: var(--bg-3-rgb); 222 | --empty-state-icon: var(--fg-4); 223 | --empty-state-icon-rgb: var(--fg-4-rgb); 224 | --focus: var(--ac-3); 225 | --focus-rgb: var(--ac-3-rgb); 226 | --focus-animation: var(--ac-3); 227 | --focus-animation-rgb: var(--ac-3-rgb); 228 | --focus-animation-deeper: var(--ac-3); 229 | --focus-animation-deeper-rgb: var(--ac-3-rgb); 230 | --focus-lighter: var(--ac-3); 231 | --focus-lighter-rgb: var(--ac-3-rgb); 232 | --highlight: var(--ac-0); 233 | --highlight-rgb: var(--ac-0-rgb); 234 | --icon: var(--fg-3); 235 | --icon-rgb: var(--fg-3-rgb); 236 | --icon-ack: var(--msg-ack); 237 | --icon-ack-rgb: var(--msg-ack-rgb); 238 | --icon-disabled: var(--fg-5); 239 | --icon-disabled-rgb: var(--fg-5-rgb); 240 | --icon-fixed: var(--fg-3); 241 | --icon-fixed-rgb: var(--fg-3-rgb); 242 | --icon-lighter: var(--fg-5); 243 | --icon-lighter-rgb: var(--fg-0-rgb); 244 | --icon-search-back: var(--ac-2); 245 | --icon-search-back-rgb: var(--ac-2-rgb); 246 | --icon-strong: var(--fg-1); 247 | --icon-strong-rgb: var(--fg-1-rgb); 248 | --incoming-background: var(--msg-in-0); 249 | --incoming-background-rgb: var(--msg-in-0-rgb); 250 | --incoming-background-deeper: var(--msg-in-1); 251 | --incoming-background-deeper-rgb: var(--msg-in-1-rgb); 252 | --incoming-background-highlight: #ccc; 253 | --incoming-background-highlight-rgb: 204, 204, 204; 254 | --incoming-primary: var(--fg-3); 255 | --incoming-primary-rgb: var(--fg-3-rgb); 256 | --input-border-active: var(--ac-0); 257 | --input-border-active-rgb: var(--ac-0-rgb); 258 | --input-placeholder: var(--fg-4); 259 | --input-placeholder-rgb: var(--fg-4); 260 | --intro-background: var(--bg-1); 261 | --intro-background-rgb: var(--bg-1-rgb); 262 | --intro-border: var(--ac-2); 263 | --intro-border-rgb: var(--ac-2-rgb); 264 | --intro-logo: var(--fg-3); 265 | --intro-logo-rgb: var(--fg-3-rgb); 266 | --intro-secondary: var(--fg-3); 267 | --intro-secondary-rgb: var(--fg-3-rgb); 268 | --inverse: var(--fg-0); 269 | --inverse-rgb: var(--fg-0-rgb); 270 | --labels-icon: rgba(241,241,242,0.4); 271 | --labels-icon-rgb: var(--fg-3-rgb); 272 | --link: var(--ac-0); 273 | --link-rgb: var(--ac-0-rgb); 274 | --live-location-footer-background: var(--bg-2); 275 | --live-location-footer-background-rgb: var(--bg-2-rgb); 276 | --live-location-glow: rgba(var(--ac-1-rgb), 0.5); 277 | --live-location-glow-rgb: var(--ac-1-rgb); 278 | --live-location-glow-stale: rgba(var(--red-rgb), 0.5); 279 | --live-location-glow-stale-rgb: var(--b1-0-rgb); 280 | --location-cluster-background: var(--bg-1); 281 | --location-cluster-background-rgb: var(--bg-1-rgb); 282 | --media-editor-control: #1c313f; 283 | --media-editor-control-rgb: 28, 49, 63; 284 | --media-viewer-background: rgba(var(--bg-1-rgb), 0.8); 285 | --media-viewer-background-rgb: var(--bg-1-rgb); 286 | --media-viewer-button-background: var(--bg-3); 287 | --media-viewer-button-background-rgb: var(--bg-3-rgb); 288 | --media-viewer-button-icon: #f1f1f2; 289 | --media-viewer-button-icon-rgb: var(--fg-3-rgb); 290 | --menu-tabs-list-active: var(--ac-0); 291 | --menu-tabs-list-active-rgb: var(--ac-0-rgb); 292 | --message-background-deep: var(--bg-0); 293 | --message-background-deep-rgb: var(--bg-0-rgb); 294 | --message-placeholder-icon: var(--fg-3); 295 | --message-placeholder-icon-rgb: var(--fg-3-rgb); 296 | --message-primary: var(--fg-1); 297 | --message-primary-rgb: var(--fg-1-rgb); 298 | --message-selection-highlight: rgba(var(--ac-0-rgb), 0.1); 299 | --message-selection-highlight-rgb: var(--ac-0-rgb); 300 | --modal-backdrop: rgba(var(--bg-1-rgb), 0.7); 301 | --modal-backdrop-rgb: var(--bg-0-rgb); 302 | --modal-backdrop-solid: var(--bg-0); 303 | --modal-backdrop-solid-rgb: var(--bg-0-rgb); 304 | --modal-background: var(--bg-2); 305 | --modal-background-rgb: var(--bg-2-rgb); 306 | --notification-biz-background: var(--b5-5); 307 | --notification-biz-background-rgb: var(--b5-5-rgb); 308 | --notification-biz-text: var(--b5-0); 309 | --notification-biz-text-rgb: var(--b5-0-rgb); 310 | --notification-e2e-background: var(--b3-5); 311 | --notification-e2e-background-rgb: var(--b3-5-rgb); 312 | --notification-e2e-icon: var(--b3-1); 313 | --notification-e2e-icon-rgb: var(--b3-1-rgb); 314 | --notification-e2e-text: var(--b3-0); 315 | --notification-e2e-text-rgb: var(--b3-0-rgb); 316 | --notification-text: var(--fg-3); 317 | --notification-text-rgb: var(--fg-3-rgb); 318 | --outgoing-background: var(--msg-out-0); 319 | --outgoing-background-rgb: var(--msg-out-0-rgb); 320 | --outgoing-background-deeper: var(--msg-out-1); 321 | --outgoing-background-deeper-rgb: var(--msg-out-1-rgb); 322 | --outgoing-background-highlight: #ccc; 323 | --outgoing-background-highlight-rgb: 204, 204, 204; 324 | --overlay: var(--bg-0); 325 | --overlay-rgb: var(--bg-0-rgb); 326 | --panel-background: var(--bg-3); 327 | --panel-background-rgb: var(--bg-3-rgb); 328 | --panel-background-active: #1a262d; 329 | --panel-background-active-rgb: 26, 38, 45; 330 | --panel-background-colored: var(--bg-3); 331 | --panel-background-colored-rgb: var(--bg-3-rgb); 332 | --panel-background-colored-deeper: var(--bg-3); 333 | --panel-background-colored-deeper-rgb: var(--bg-3-rgb); 334 | --panel-background-deep: var(--bg-2); 335 | --panel-background-deep-rgb: var(--bg-2-rgb); 336 | --panel-background-deeper: var(--bg-3); 337 | --panel-background-deeper-rgb: var(--bg-3-rgb); 338 | --panel-background-hover: var(--bg-4); 339 | --panel-background-hover-rgb: var(--bg-4-rgb); 340 | --panel-background-lighter: var(--bg-3); 341 | --panel-background-lighter-rgb: var(--bg-3-rgb); 342 | --panel-header-background: var(--bg-3); 343 | --panel-header-background-rgb: var(--bg-3-rgb); 344 | --panel-header-icon: var(--fg-3); 345 | --panel-header-icon-rgb: var(--fg-3-rgb); 346 | --panel-input-background: var(--bg-2); 347 | --panel-input-background-rgb: var(--bg-2-rgb); 348 | --panel-primary: var(--fg-3); 349 | --panel-primary-rgb: var(--fg-3-rgb); 350 | --payment-amount: #00a593; 351 | --payment-amount-rgb: 0, 164.8, 146.90743; 352 | --payment-status-failed: #ef697a; 353 | --payment-status-failed-rgb: 239, 105, 122; 354 | --payment-status-processing: var(--fg-1); 355 | --payment-status-processing-rgb: var(--fg-3-rgb); 356 | --payment-status-success: #40cf6c; 357 | --payment-status-success-rgb: 64, 207, 108; 358 | --payment-status-waiting: var(--fg-1); 359 | --payment-status-waiting-rgb: var(--fg-3-rgb); 360 | --photopicker-overlay-background: rgba(var(--bg-3-rgb), 0.8); 361 | --photopicker-overlay-background-rgb: var(--bg-3-rgb); 362 | --picker-background: var(--bg-2); 363 | --picker-background-rgb: var(--bg-2-rgb); 364 | --popup-panel-background: var(--bg-2); 365 | --popup-panel-background-rgb: var(--bg-2-rgb); 366 | --primary: var(--fg-2); 367 | --primary-rgb: var(--fg-2-rgb); 368 | --primary-strong: var(--fg-1); 369 | --primary-strong-rgb: var(--fg-1-rgb); 370 | --primary-stronger: var(--fg-0); 371 | --primary-stronger-rgb: var(--fg-0-rgb); 372 | --primary-strongest: var(--fg-0); 373 | --primary-strongest-rgb: var(--fg-0-rgb); 374 | --primary-title: var(--fg-2); 375 | --primary-title-rgb: var(--fg-2-rgb); 376 | --product-image-button-background: var(--bg-4); 377 | --product-image-button-background-rgb: var(--bg-4-rgb); 378 | --product-thumb-background: var(--bg-3); 379 | --product-thumb-background-rgb: var(--bg-3-rgb); 380 | --product-thumb-background-deeper: var(--bg-2); 381 | --product-thumb-background-deeper-rgb: var(--bg-2-rgb); 382 | --progress-background: var(--bg-2); 383 | --progress-background-rgb: var(--bg-2-rgb); 384 | --progress-primary: var(--ac-0); 385 | --progress-primary-rgb: var(--ac-0); 386 | --ptt-blue: var(--b6-0); 387 | --ptt-blue-rgb: var(--b6-0-rgb); 388 | --ptt-button-cancel: var(--b1-0); 389 | --ptt-button-cancel-rgb: var(--b1-0-rgb); 390 | --ptt-button-send: var(--b4-0); 391 | --ptt-button-send-rgb: var(--b4-0-rgb); 392 | --ptt-gray: var(--fg-4); 393 | --ptt-gray-rgb: var(--fg-4-rgb); 394 | --ptt-green: var(--b4-0); 395 | --ptt-green-rgb: var(--b4-rgb); 396 | --ptt-message-blue: var(--b6-0); 397 | --ptt-message-blue-rgb: var(--b6-0-rgb); 398 | --quick-action-button: rgba(var(--fg-3-rgb), 0.8); 399 | --quick-action-button-rgb: var(--fg-3-rgb); 400 | --quick-action-button-background: var(--bg-4); 401 | --quick-action-button-background-rgb: var(--bg-4-rgb); 402 | --rich-text-panel-background: var(--bg-3); 403 | --rich-text-panel-background-rgb: var(--bg-3-rgb); 404 | --search-container-background: var(--bg-2); 405 | --search-container-background-rgb: var(--bg-2-rgb); 406 | --search-input-background: var(--bg-3); 407 | --search-input-background-rgb: var(--bg-3-rgb); 408 | --secondary: var(--fg-3); 409 | --secondary-rgb: var(--fg-3-rgb); 410 | --secondary-light: var(--fg-2); 411 | --secondary-light-rgb: var(--fg-2-rgb); 412 | --secondary-lighter: var(--fg-3); 413 | --secondary-lighter-rgb: var(--fg-3-rgb); 414 | --secondary-stronger: var(--fg-3); 415 | --secondary-stronger-rgb: var(--fg-3-rgb); 416 | --shadow: var(--sh); 417 | --shadow-rgb: var(--sh-rgb); 418 | --shadow-light: var(--sh); 419 | --shadow-light-rgb: var(--sh-rgb); 420 | --spinner-default: var(--fg-3); 421 | --spinner-default-rgb: var(--fg-3-rgb); 422 | --spinner-highlight: var(--ac-0); 423 | --spinner-highlight-rgb: var(--ac-0-rgb); 424 | --spinner-incoming: var(--fg-5); 425 | --spinner-incoming-rgb: var(--fg-5-rgb); 426 | --spinner-outgoing: var(--ac-5); 427 | --spinner-outgoing-rgb: var(--ac-5-rgb); 428 | --startup-background: var(--bg-0); 429 | --startup-background-rgb: var(--bg-0-rgb); 430 | --startup-icon: var(--fg-3); 431 | --startup-icon-rgb: var(--fg-3-rgb); 432 | --status-background: var(--bg-1); 433 | --status-background-rgb: var(--bg-1-rgb); 434 | --status-background-hover: var(--bg-2); 435 | --status-background-hover-rgb: var(--bg-2-rgb); 436 | --status-primary: var(--fg-1); 437 | --status-primary-rgb: var(--fg-1-rgb); 438 | --status-secondary: var(--fg-4); 439 | --status-secondary-rgb: var(--fg-4-rgb); 440 | --status-secondary-stronger: var(--fg-5); 441 | --status-secondary-stronger-rgb: var(--fg-5-rgb); 442 | --success: var(--ac-0); 443 | --success-rgb: var(--ac-0-rgb); 444 | --suspicious-background: rgba(239,105,122,0.8); 445 | --suspicious-background-rgb: 239, 105, 122; 446 | --system-message-background: var(--b6-4); 447 | --system-message-background-rgb: var(--b6-4-rgb); 448 | --system-message-text: rgba(var(--fg-1-rgb), 0.87); 449 | --system-message-text-rgb: var(--fg-1-rgb); 450 | --teal-hover: #00b7a1; 451 | --teal-hover-rgb: 0, 183, 161; 452 | --teal-pale: #5fc8bc; 453 | --teal-pale-rgb: 95, 200, 188; 454 | --thumb-border-active: var(--bg-2); 455 | --thumb-border-active-rgb: var(--bg-2-rgb); 456 | --thumb-border-active-new-media-editor: var(--fg-4); 457 | --thumb-border-active-new-media-editor-rgb: var(--fg-4-rgb); 458 | --thumb-border-viewer-active: var(--fg-3); 459 | --thumb-border-viewer-active-rgb: var(--fg-3-rgb); 460 | --toast-background: rgba(var(--bg-3-rgb), 0.96); 461 | --toast-background-rgb: var(--bg-3-rgb); 462 | --tooltip-background: rgba(var(--bg-4-rgb), 0.85); 463 | --tooltip-background-rgb: var(--bg-4); 464 | --typing: var(--ac-0); 465 | --typing-rgb: var(--ac-0-rgb); 466 | --unread-background: var(--bg-3); 467 | --unread-background-rgb: var(--bg-3-rgb); 468 | --unread-bar-background: rgba(var(--bg-0-rgb), 0.7); 469 | --unread-bar-background-rgb: var(--bg-0-rgb); 470 | --unread-marker-background: var(--ac-0); 471 | --unread-marker-background-rgb: var(--ac-0-rgb); 472 | --unread-marker-text: var(--white); 473 | --unread-marker-text-rgb: var(--white-rgb); 474 | --video-player-background: #000; 475 | --video-player-background-rgb: 0, 0, 0; 476 | --video-primary: #fff; 477 | --video-primary-rgb: 255, 255, 255; 478 | --voip-accept-background: #70db91; 479 | --voip-accept-background-rgb: 112, 219, 145; 480 | --voip-background: #262626; 481 | --voip-background-rgb: 38, 38, 38; 482 | --voip-background-deep: #000; 483 | --voip-background-deep-rgb: 0, 0, 0; 484 | --voip-primary: #fff; 485 | --voip-primary-rgb: 255, 255, 255; 486 | --voip-reject-background: #e54b40; 487 | --voip-reject-background-rgb: 229, 75, 64; 488 | --wallpaper-background: var(--bg-1); 489 | --wallpaper-background-rgb: var(--bg-1-rgb); 490 | --wallpaper-thumb-border-active: var(--bg-5); 491 | --wallpaper-thumb-border-active-rgb: var(--bg-5-rgb); 492 | --wallpaper-thumb-border-hover: var(--bg-4); 493 | --wallpaper-thumb-border-hover-rgb: var(--bg-4-rgb); 494 | --win32-title-primary: var(--fg-1); 495 | --win32-title-primary-rgb: var(--fg-1-rgb); 496 | --bg-0: #1c2026; 497 | --bg-0-rgb: 28,32,38; 498 | --bg-1: #1f232a; 499 | --bg-1-rgb: 31,35,42; 500 | --bg-2: #282d37; 501 | --bg-2-rgb: 40,45,55; 502 | --bg-3: #323843; 503 | --bg-3-rgb: 50,56,67; 504 | --bg-4: #3b4250; 505 | --bg-4-rgb: 59,66,80; 506 | --bg-5: #444d5c; 507 | --bg-5-rgb: 68,77,92; 508 | --fg-0: #f0f0f0; 509 | --fg-0-rgb: 240,240,240; 510 | --fg-1: #eee; 511 | --fg-1-rgb: 238,238,238; 512 | --fg-2: #d6d6d6; 513 | --fg-2-rgb: 214,214,214; 514 | --fg-3: #bebebe; 515 | --fg-3-rgb: 190,190,190; 516 | --fg-4: #a7a7a7; 517 | --fg-4-rgb: 167,167,167; 518 | --fg-5: #8f8f8f; 519 | --fg-5-rgb: 143,143,143; 520 | --ac-0: #7289da; 521 | --ac-0-rgb: 114,137,218; 522 | --ac-1: #6377bd; 523 | --ac-1-rgb: 99,119,189; 524 | --ac-2: #5566a0; 525 | --ac-2-rgb: 85,102,160; 526 | --ac-3: #475483; 527 | --ac-3-rgb: 71,84,131; 528 | --ac-4: #2f3756; 529 | --ac-4-rgb: 47,55,86; 530 | --ac-5: #282f46; 531 | --ac-5-rgb: 40,47,70; 532 | --b1-0: #f07178; 533 | --b1-0-rgb: 240,113,120; 534 | --b1-1: #f08571; 535 | --b1-1-rgb: 240,133,113; 536 | --b1-2: #f09671; 537 | --b1-2-rgb: 240,150,113; 538 | --b1-3: #8f4a51; 539 | --b1-3-rgb: 143,74,81; 540 | --b1-4: #60353a; 541 | --b1-4-rgb: 96,53,58; 542 | --b1-5: #4a2c30; 543 | --b1-5-rgb: 74,44,48; 544 | --b2-0: #f78c6c; 545 | --b2-0-rgb: 247,140,108; 546 | --b2-1: #f7aa6c; 547 | --b2-1-rgb: 247,170,108; 548 | --b2-2: #f7bd6c; 549 | --b2-2-rgb: 247,189,108; 550 | --b2-3: #93594a; 551 | --b2-3-rgb: 147,89,74; 552 | --b2-4: #623e36; 553 | --b2-4-rgb: 98,62,54; 554 | --b2-5: #4c322d; 555 | --b2-5-rgb: 76,50,45; 556 | --b3-0: #ffcb6b; 557 | --b3-0-rgb: 255,203,107; 558 | --b3-1: #ffea6b; 559 | --b3-1-rgb: 255,234,107; 560 | --b3-2: #ffff6b; 561 | --b3-2-rgb: 255,255,107; 562 | --b3-3: #977c4a; 563 | --b3-3-rgb: 151,124,74; 564 | --b3-4: #655435; 565 | --b3-4-rgb: 101,84,53; 566 | --b3-5: #4e422d; 567 | --b3-5-rgb: 78,66,45; 568 | --b4-0: #c3e88d; 569 | --b4-0-rgb: 195,232,141; 570 | --b4-1: #b0e88d; 571 | --b4-1-rgb: 176,232,141; 572 | --b4-2: #a3e88d; 573 | --b4-2-rgb: 163,232,141; 574 | --b4-3: #768c5c; 575 | --b4-3-rgb: 118,140,92; 576 | --b4-4: #505e41; 577 | --b4-4-rgb: 80,94,65; 578 | --b4-5: #3f4936; 579 | --b4-5-rgb: 63,73,54; 580 | --b5-0: #89ddff; 581 | --b5-0-rgb: 137,221,255; 582 | --b5-1: #89c4ff; 583 | --b5-1-rgb: 137,196,255; 584 | --b5-2: #89b4ff; 585 | --b5-2-rgb: 137,180,255; 586 | --b5-3: #56869b; 587 | --b5-3-rgb: 86,134,155; 588 | --b5-4: #3c5b69; 589 | --b5-4-rgb: 60,91,105; 590 | --b5-5: #304752; 591 | --b5-5-rgb: 48,71,82; 592 | --b6-0: #82aaff; 593 | --b6-0-rgb: 130,170,255; 594 | --b6-1: #828fff; 595 | --b6-1-rgb: 130,143,255; 596 | --b6-2: #8682ff; 597 | --b6-2-rgb: 134,130,255; 598 | --b6-3: #526a9b; 599 | --b6-3-rgb: 82,106,155; 600 | --b6-4: #394969; 601 | --b6-4-rgb: 57,73,105; 602 | --b6-5: #2e3a52; 603 | --b6-5-rgb: 46,58,82; 604 | --b7-0: #c792ea; 605 | --b7-0-rgb: 199,146,234; 606 | --b7-1: #da92ea; 607 | --b7-1-rgb: 218,146,234; 608 | --b7-2: #e692ea; 609 | --b7-2-rgb: 230,146,234; 610 | --b7-3: #785c90; 611 | --b7-3-rgb: 120,92,144; 612 | --b7-4: #514062; 613 | --b7-4-rgb: 81,64,98; 614 | --b7-5: #40344d; 615 | --b7-5-rgb: 64,52,77; 616 | --b8-0: #9a91ea; 617 | --b8-0-rgb: 154,145,234; 618 | --b8-1: #ad91ea; 619 | --b8-1-rgb: 173,145,234; 620 | --b8-2: #b991ea; 621 | --b8-2-rgb: 185,145,234; 622 | --b8-3: #5f5c90; 623 | --b8-3-rgb: 95,92,144; 624 | --b8-4: #424062; 625 | --b8-4-rgb: 66,64,98; 626 | --b8-5: #34344d; 627 | --b8-5-rgb: 52,52,77; 628 | --white: #fff; 629 | --white-rgb: 255,255,255; 630 | --sh: rgba(0,0,0,0.145); 631 | --sh-rgb: 0,0,0; 632 | --t: transparent; 633 | --bshadow: 0 4px 8px 2px var(--shadow); 634 | --intro-image: url("data:image/svg+xml;utf8,"); 635 | } 636 | @keyframes aBorder { 637 | 40% { 638 | opacity: 0; 639 | } 640 | 80% { 641 | opacity: 1; 642 | } 643 | } 644 | @keyframes aPulse { 645 | 0% { 646 | transform: scale(0.9); 647 | } 648 | 50% { 649 | transform: scale(1); 650 | } 651 | 100% { 652 | transform: scale(0.9); 653 | } 654 | } 655 | @keyframes aKiss { 656 | 0% { 657 | transform: scale(0.7); 658 | } 659 | 50% { 660 | transform: scale(0.8); 661 | } 662 | 80% { 663 | transform: scale(1) rotate(-30deg); 664 | } 665 | 100% { 666 | transform: scale(0.7); 667 | } 668 | } 669 | html > body { 670 | background-image: none !important; 671 | color: var(--fg-0) !important; 672 | background-color: var(--bg-0) !important; 673 | } 674 | html > body option { 675 | color: var(--fg-1) !important; 676 | background-color: var(--bg-3) !important; 677 | } 678 | html > body, 679 | html > body button, 680 | html > body input { 681 | font-family: var(--ui-font); 682 | } 683 | html > body ._2-NDv { 684 | color: var(--fg-1) !important; 685 | border: 1px solid var(--bg-5) !important; 686 | } 687 | html > body ._2-NDv button:nth-child(2) { 688 | color: var(--ac-1) !important; 689 | } 690 | html > body ._2-NDv button:nth-child(3) { 691 | color: var(--fg-4) !important; 692 | } 693 | html > body [data-asset-intro-image-dark], 694 | html > body [data-asset-intro-image-light] { 695 | max-width: 240px; 696 | max-height: 240px; 697 | background-image: var(--intro-image); 698 | transition: opacity 0.6s ease; 699 | border-radius: 0 !important; 700 | } 701 | html > body [data-asset-intro-image-dark] + div h1, 702 | html > body [data-asset-intro-image-light] + div h1 { 703 | color: var(--fg-0) !important; 704 | } 705 | html > body [data-asset-intro-image-dark] + div h1 + div[class], 706 | html > body [data-asset-intro-image-light] + div h1 + div[class] { 707 | font-size: 0 !important; 708 | color: var(--fg-1) !important; 709 | } 710 | html > body [data-asset-intro-image-dark] + div h1 + div[class]::before, 711 | html > body [data-asset-intro-image-light] + div h1 + div[class]::before { 712 | display: block; 713 | font-size: 16px; 714 | margin-bottom: -16px; 715 | white-space: pre-wrap; 716 | content: var(--message) var(--changes); 717 | } 718 | html > body [data-asset-intro-image-dark] + div h1 + div[class]::after, 719 | html > body [data-asset-intro-image-light] + div h1 + div[class]::after { 720 | display: block; 721 | font-size: 16px; 722 | margin-top: 16px; 723 | padding-top: 24px; 724 | margin-bottom: -16px; 725 | content: var(--version); 726 | border-top: 1px solid var(--bg-4) !important; 727 | } 728 | ._1wlMU { 729 | position: relative; 730 | --blue-light: var(--ac-3); 731 | --inverse: var(--ac-3); 732 | } 733 | ._1wlMU::before { 734 | content: ''; 735 | filter: invert(var(--chat-bg-i)) opacity(var(--chat-bg-o)); 736 | background: var(--chat-image) !important; 737 | position: absolute; 738 | height: 100%; 739 | width: 100%; 740 | } 741 | ._1wlMU:first-child:not(._2ILMM) { 742 | border: 4px solid var(--bg-2) !important; 743 | } 744 | ._1wlMU:first-child, 745 | ._1wlMU:first-child::after { 746 | width: calc(3 * 82px + 30px) !important; 747 | } 748 | ._1wlMU:first-child span { 749 | font-size: 0 !important; 750 | } 751 | ._1wlMU:first-child span::before { 752 | content: 'Use this with Dark-WhatsApp'; 753 | font-size: 16px !important; 754 | } 755 | [style *= 'rgb(222, 227, 233)'], 756 | [style *= 'rgb(217, 218, 222)'], 757 | [style *= 'rgb(192, 193, 196)'] { 758 | background-color: var(--bg-2) !important; 759 | } 760 | @supports (scrollbar-width: thin) { 761 | * { 762 | scrollbar-color: var(--ac-2) var(--shadow) !important; 763 | } 764 | } 765 | *::-webkit-scrollbar-thumb { 766 | background-color: var(--ac-2) !important; 767 | } 768 | *::-webkit-scrollbar-track { 769 | background-color: var(--shadow) !important; 770 | } 771 | [id *= 'startup'] { 772 | background-color: var(--bg-0) !important; 773 | } 774 | progress { 775 | background-color: var(--bg-2) !important; 776 | } 777 | progress[value]::-moz-progress-bar { 778 | background-color: var(--ac-0) !important; 779 | } 780 | ::-moz-progress-bar { 781 | background-color: var(--bg-4) !important; 782 | } 783 | ::-webkit-progress-bar { 784 | background-color: var(--bg-4) !important; 785 | } 786 | ::-webkit-progress-value { 787 | background-color: var(--ac-0) !important; 788 | } 789 | ._1l12d[style], 790 | ._3PdFH { 791 | background-color: var(--bg-5) !important; 792 | } 793 | ._1l12d[style], 794 | ._1l12d[style] > img, 795 | ._3I3b7, 796 | ._3PdFH, 797 | ._1huBh, 798 | ._3JaPz { 799 | border-radius: var(--r-avatars) !important; 800 | } 801 | ._3JaPz { 802 | background-color: var(--bg-5) !important; 803 | } 804 | [data-list-scroll-offset] > div:first-child > div:last-child { 805 | margin-left: 0 !important; 806 | } 807 | .emojik { 808 | transition: transform 0.15s ease !important; 809 | } 810 | .emojik:not(:hover):not(:focus):not(.selected) { 811 | filter: opacity(var(--emoji-o)); 812 | } 813 | .emojik:hover:not(.selected):not(:focus) { 814 | transform: scale(1.2); 815 | box-shadow: none !important; 816 | opacity: 1 !important; 817 | } 818 | .emojik.selected, 819 | .emojik:focus { 820 | box-shadow: 0 0 0 1px var(--bg-3), 0 0 0 3px var(--ac-0) !important; 821 | } 822 | [data-animate-media-viewer] > div:first-child, 823 | .overlay ._2CDVd { 824 | border-bottom: 1px solid var(--bg-5) !important; 825 | background-color: var(--bg-2) !important; 826 | } 827 | .overlay ._3Pwfx._2jw57 { 828 | background-color: transparent !important; 829 | } 830 | .overlay [data-animate-modal-popup] { 831 | box-shadow: var(--bshadow) !important; 832 | border: 1px solid var(--bg-5); 833 | border-radius: var(--r-menus) !important; 834 | } 835 | .overlay [data-animate-modal-popup] .copyable-area > header { 836 | border-bottom: 1px solid var(--bg-5); 837 | } 838 | .overlay [data-animate-modal-popup] .copyable-area > span [style *= 'translateY']:not([tabindex]), 839 | .overlay [data-animate-modal-popup] .copyable-area ._30pU5 { 840 | border-top: 1px solid var(--bg-5); 841 | } 842 | .overlay header + div[tabindex] + div div[style] { 843 | --background-default: var(--bg-1); 844 | --background-default-hover: var(--bg-2); 845 | } 846 | ._17JJa { 847 | border-color: var(--bg-5) !important; 848 | background-color: var(--bg-2) !important; 849 | } 850 | [data-animate-status-v3-modal-background = 'true'] { 851 | background-color: var(--modal-backdrop) !important; 852 | } 853 | [data-animate-status-v3-modal-background = 'true'] > div { 854 | background-color: var(--bg-1) !important; 855 | } 856 | [data-animate-status-v3-modal-background = 'true'] > div > div:nth-child(1) { 857 | background-color: var(--bg-2) !important; 858 | border-right: 1px solid var(--bg-5); 859 | border-radius: var(--r-menus) 0 0 var(--r-menus) !important; 860 | } 861 | @media (min-width: 1441px) { 862 | [data-animate-status-v3-modal-background = 'true'] > div { 863 | border: 1px solid var(--bg-5) !important; 864 | border-radius: var(--r-menus) !important; 865 | } 866 | } 867 | ._2yhFa { 868 | margin: auto; 869 | padding: 5px 8px 8px; 870 | min-width: 150px; 871 | border-radius: var(--r-inputs); 872 | background-color: rgba(var(--bg-1-rgb), 0.5); 873 | } 874 | [data-icon = 'status-v3-unread'] [fill = '#009588'] { 875 | fill: var(--ac-0) !important; 876 | } 877 | .overlay._2s66d._3QE0O { 878 | background-color: var(--modal-backdrop) !important; 879 | } 880 | .overlay._2s66d._3QE0O [data-animate-modal-popup] { 881 | padding: 16px !important; 882 | background-color: var(--bg-1) !important; 883 | --white-rgb: var(--fg-2-rgb); 884 | } 885 | .overlay._2s66d._3QE0O [data-animate-modal-popup] [data-icon = 'back'] path { 886 | fill: var(--fg-1) !important; 887 | } 888 | .landing-wrapper::before { 889 | content: unset !important; 890 | } 891 | .landing-header { 892 | position: relative; 893 | } 894 | .landing-header path[fill ^= '#FFF'] { 895 | fill: var(--ac-0); 896 | } 897 | .landing-header path[fill ^= '#00E'] { 898 | fill: var(--bg-1); 899 | } 900 | .landing-header div { 901 | text-transform: unset; 902 | color: var(--fg-1) !important; 903 | } 904 | .landing-header::after { 905 | font-size: 14px; 906 | font-weight: 500; 907 | position: absolute; 908 | content: var(--version); 909 | } 910 | html[dir = 'RTL'] .landing-header::after { 911 | left: 0; 912 | } 913 | html[dir = 'LTR'] .landing-header::after { 914 | right: 0; 915 | } 916 | .landing-window:not(#z) { 917 | border-radius: 4px; 918 | background-color: var(--bg-1) !important; 919 | box-shadow: 0 0 1px var(--bg-5); 920 | } 921 | .landing-main a[href] { 922 | color: var(--ac-0) !important; 923 | } 924 | .landing-main label, 925 | .landing-main ._38sqg { 926 | color: var(--fg-3) !important; 927 | } 928 | .landing-main .landing-title { 929 | color: var(--fg-1) !important; 930 | } 931 | .landing-main rect[fill ^= '#f2f'], 932 | .landing-main rect[fill ^= '#F2F'] { 933 | fill: var(--bg-5); 934 | } 935 | .landing-main path[fill ^= '#818'] { 936 | fill: var(--ac-0); 937 | } 938 | .landing-main div[data-ref] { 939 | border-radius: 0 !important; 940 | filter: contrast(150%); 941 | outline: 4px solid #fff; 942 | box-shadow: 0 0 0 4px #fff; 943 | } 944 | .landing-main div[data-ref] [role='button'] { 945 | color: #fff !important; 946 | background-color: var(--ac-0) !important; 947 | } 948 | .landing-main div[data-ref].UlvkP { 949 | outline: 4px solid var(--ac-0); 950 | box-shadow: 0 0 0 4px var(--ac-0); 951 | } 952 | .landing-main + ._3bA0V { 953 | background-color: transparent !important; 954 | } 955 | .landing-main + ._3bA0V img { 956 | opacity: 0.3; 957 | } 958 | .landing-main + ._3bA0V [style *= 'opacity: 1'] { 959 | background-color: transparent !important; 960 | } 961 | .landing-main ._1jxi5 { 962 | color: #fff !important; 963 | background-color: var(--ac-0) !important; 964 | box-shadow: bsh; 965 | } 966 | .landing-main ._1jxi5::before { 967 | border-bottom-color: var(--ac-0) !important; 968 | } 969 | #app > div::after { 970 | top: var(--bg-blur-s); 971 | right: var(--bg-blur-s); 972 | bottom: var(--bg-blur-s); 973 | left: var(--bg-blur-s); 974 | height: unset; 975 | width: unset; 976 | filter: blur(var(--bg-blur)) opacity(var(--bg-opacity)) invert(var(--bg-invert)) hue-rotate(var(--bg-hue)); 977 | background-position: var(--bg-pos) !important; 978 | background-image: var(--bg-image) !important; 979 | background-repeat: var(--bg-rep) !important; 980 | background-size: var(--bg-size) !important; 981 | background-color: transparent !important; 982 | } 983 | @media screen and (min-width: 1441px) { 984 | #app > div::after { 985 | content: '' !important; 986 | } 987 | } 988 | div div:first-child > .U7SeD::before, 989 | span div:first-child > .U7SeD::before { 990 | content: none; 991 | } 992 | #app > div ._2Evw0 { 993 | border-radius: var(--r-inputs) !important; 994 | } 995 | #app > div > span > div[style ^= 'transform-origin:'][tabindex], 996 | #app > div ._3nLE_[style ^= 'transform-origin:'][tabindex] { 997 | box-shadow: var(--bshadow) !important; 998 | border: 1px solid var(--bg-4); 999 | border-radius: var(--r-menus) !important; 1000 | } 1001 | #app > div > span > ._3nLE_ { 1002 | border: 1px solid var(--bg-5) !important; 1003 | box-shadow: var(--bshadow) !important; 1004 | } 1005 | #app > div > span > ._3nLE_ > [data-animate-dropdown-nib] { 1006 | border-bottom: 1px solid var(--bg-5); 1007 | border-right: 1px solid var(--bg-5); 1008 | border-radius: 0 0 4px 0; 1009 | bottom: -8px !important; 1010 | } 1011 | #app > div > [tabindex] { 1012 | background-color: var(--bg-1) !important; 1013 | } 1014 | @media (min-width: 1441px) { 1015 | #app > div > [tabindex], 1016 | [data-animate-status-v3-modal-background] > div:first-child { 1017 | width: calc(100% - 38px) !important; 1018 | max-width: var(--app-width) !important; 1019 | border-radius: var(--r-menus) !important; 1020 | border: 1px solid var(--bg-5) !important; 1021 | box-shadow: 0 2px 6px sh !important; 1022 | } 1023 | } 1024 | #app > div > [tabindex]::after { 1025 | content: unset !important; 1026 | } 1027 | ._22PcK { 1028 | background-color: var(--bg-2) !important; 1029 | border-bottom: 1px solid var(--bg-5) !important; 1030 | } 1031 | ._22PcK label { 1032 | box-shadow: inset 0 0 0 1px var(--bg-4); 1033 | } 1034 | ._22PcK::after { 1035 | display: none !important; 1036 | } 1037 | ._22PcK._30SFc { 1038 | box-shadow: var(--bshadow); 1039 | } 1040 | ._1yO24 { 1041 | animation: none !important; 1042 | } 1043 | #app > div > [tabindex] #side > header { 1044 | border-bottom: 1px solid var(--bg-5) !important; 1045 | } 1046 | #app > div > [tabindex] #side > header + span > div { 1047 | border-bottom: 1px solid var(--bg-5) !important; 1048 | } 1049 | #app > div > [tabindex] #side > header + span > div [data-icon = 'x'] svg path { 1050 | fill: var(--fg-5); 1051 | } 1052 | #app > div > [tabindex].three > div:nth-child(2) > div:nth-child(3) { 1053 | border-left: 1px solid var(--bg-5) !important; 1054 | } 1055 | ._32vnm { 1056 | box-shadow: 0 0 0 1px var(--bg-4) !important; 1057 | } 1058 | .dark .three #main > *, 1059 | .dark .three ._26MUt { 1060 | border-right: none !important; 1061 | } 1062 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) > span[class] * [role][aria-selected='false'] > div { 1063 | background-color: var(--bg-1) !important; 1064 | } 1065 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) > span[class] * [role][aria-selected='false'] > div:hover { 1066 | background-color: var(--bg-2) !important; 1067 | } 1068 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) .copyable-text ~ div[role='button'] { 1069 | --background-default: var(--bg-1); 1070 | --background-default-hover: var(--bg-2); 1071 | } 1072 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) header + div > span > div > div, 1073 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(3) header + div > span > div > div { 1074 | --drawer-gallery-background-hover: var(--bg-2); 1075 | --border-panel: var(--b1-1); 1076 | } 1077 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) header + div > span > div > div::before, 1078 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(3) header + div > span > div > div::before { 1079 | background-color: var(--bg-3) !important; 1080 | } 1081 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(1) header + div > span > div > div::after, 1082 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(3) header + div > span > div > div::after { 1083 | background-color: transparent !important; 1084 | } 1085 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(3) header + div > div:first-child.wJ21F, 1086 | #app > div > [tabindex] > div:nth-child(2) > div:nth-child(3) header + div > div[role='button'] { 1087 | --background-default: var(--bg-1); 1088 | --background-default-hover: var(--bg-2); 1089 | } 1090 | span[class][data-icon = 'checkbox-round-checked'] [fill = '#00BFA5'] { 1091 | fill: var(--ac-0); 1092 | } 1093 | span[class][data-icon = 'checkbox-round-checked'] [fill = '#FFF'] { 1094 | fill: #fff; 1095 | } 1096 | span[class][data-icon] path[fill = '#FFBC00'] { 1097 | fill: var(--bg-3) !important; 1098 | } 1099 | span[class][data-icon = 'down-context'] { 1100 | color: var(--fg-3) !important; 1101 | } 1102 | #side > header button:not([data-animate-menu-icons-item]) [data-icon], 1103 | #main > div + header button:not([data-animate-menu-icons-item]) [data-icon], 1104 | #main > footer > .copyable-area button:not([data-animate-menu-icons-item]) [data-icon], 1105 | #main > footer + span:not([class]) > div button:not([data-animate-menu-icons-item]) [data-icon], 1106 | .overlay > div:first-child button:not([data-animate-menu-icons-item]) [data-icon], 1107 | .copyable-area > header button:not([data-animate-menu-icons-item]) [data-icon], 1108 | #side > header [role = 'button'] [data-icon], 1109 | #main > div + header [role = 'button'] [data-icon], 1110 | #main > footer > .copyable-area [role = 'button'] [data-icon], 1111 | #main > footer + span:not([class]) > div [role = 'button'] [data-icon], 1112 | .overlay > div:first-child [role = 'button'] [data-icon], 1113 | .copyable-area > header [role = 'button'] [data-icon] { 1114 | transition: fill-opacity 0.3s ease !important; 1115 | } 1116 | #side > header button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1117 | #main > div + header button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1118 | #main > footer > .copyable-area button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1119 | #main > footer + span:not([class]) > div button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1120 | .overlay > div:first-child button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1121 | .copyable-area > header button:not([data-animate-menu-icons-item]):not(._3QjfB):hover [data-icon], 1122 | #side > header [role = 'button']:not(._3QjfB):hover [data-icon], 1123 | #main > div + header [role = 'button']:not(._3QjfB):hover [data-icon], 1124 | #main > footer > .copyable-area [role = 'button']:not(._3QjfB):hover [data-icon], 1125 | #main > footer + span:not([class]) > div [role = 'button']:not(._3QjfB):hover [data-icon], 1126 | .overlay > div:first-child [role = 'button']:not(._3QjfB):hover [data-icon], 1127 | .copyable-area > header [role = 'button']:not(._3QjfB):hover [data-icon] { 1128 | fill-opacity: 0.6 !important; 1129 | } 1130 | .copyable-area header[class] { 1131 | height: 59px !important; 1132 | justify-content: center !important; 1133 | border-bottom: 1px solid var(--bg-5) !important; 1134 | } 1135 | .copyable-area header[class] > [data-animate-drawer-title] { 1136 | height: unset !important; 1137 | } 1138 | .copyable-area header[class] > [data-animate-drawer-title] > div:nth-child(2) { 1139 | margin-top: 1px !important; 1140 | font-size: 18px !important; 1141 | font-weight: normal !important; 1142 | } 1143 | #main > header { 1144 | border-bottom: 1px solid var(--bg-5) !important; 1145 | box-shadow: none !important; 1146 | border-color: var(--bg-5) !important; 1147 | } 1148 | #main > header::after { 1149 | content: unset; 1150 | } 1151 | #main .KpuSa { 1152 | border: 1px solid var(--b6-3); 1153 | text-shadow: none !important; 1154 | } 1155 | #main .KpuSa._1N_HH { 1156 | border: 1px solid var(--b3-4); 1157 | } 1158 | #main .KpuSa._1C8gB { 1159 | border: 1px solid var(--b5-4); 1160 | } 1161 | #main ._3bfj9, 1162 | #main ._3DmTD { 1163 | border: 1px solid var(--bg-5); 1164 | } 1165 | [data-asset-chat-background-dark], 1166 | [data-asset-chat-background-light] { 1167 | filter: invert(var(--chat-bg-i)) opacity(var(--chat-bg-o)); 1168 | background-image: var(--chat-image) !important; 1169 | background-position: var(--chat-bg-p) !important; 1170 | background-repeat: var(--chat-bg-r) !important; 1171 | background-size: var(--chat-bg-s) !important; 1172 | opacity: 1 !important; 1173 | } 1174 | #main .XFAMv { 1175 | border: none !important; 1176 | } 1177 | #main [class *= 'message-'][data-id] > span + div:not(._31W3v) > div { 1178 | box-shadow: 0 1px 0 rgba(var(--shadow-rgb), 0.2) !important; 1179 | } 1180 | #main ._1qGcR + div[style] { 1181 | background-color: var(--bg-4) !important; 1182 | } 1183 | [style *= 'width'][style *= 'height'] + div._1yXJw, 1184 | [style *= 'width'][style *= 'height'] + div._2QpTA { 1185 | padding: 2px 4px !important; 1186 | background-color: rgba(var(--bg-1-rgb), 0.7) !important; 1187 | border-radius: 5px !important; 1188 | } 1189 | .video-thumb ._1rd4q, 1190 | .video-thumb + ._3phU6 { 1191 | padding: 2px 4px !important; 1192 | background-color: rgba(var(--bg-1-rgb), 0.7) !important; 1193 | border-radius: 5px !important; 1194 | } 1195 | .video-thumb._3V2jl + ._3phU6 { 1196 | right: 5px !important; 1197 | bottom: 3px !important; 1198 | } 1199 | [style *= 'height'][data-plain-text *= 'maps.google.com'] + div[class] > [role] { 1200 | padding: 2px 4px !important; 1201 | background-color: rgba(var(--bg-1-rgb), 0.7) !important; 1202 | border-radius: 5px !important; 1203 | } 1204 | .fMR4l { 1205 | background-color: rgba(var(--bg-4-rgb), 0.5) !important; 1206 | } 1207 | #main> header ~ div[style *= 'height: 0px'] { 1208 | border-top: 1px solid var(--bg-5) !important; 1209 | } 1210 | #main > footer .velocity-animating, 1211 | #main > footer div[style $= 'translateY(0%);'], 1212 | #main > footer div[style $= 'translateY(0px);'] { 1213 | box-shadow: 0 -1px 0 var(--bg-5) !important; 1214 | } 1215 | #main > footer ._1Q5Gk { 1216 | border-top: none; 1217 | border-bottom: 1px solid var(--bg-5); 1218 | } 1219 | #main > footer ._2K2iM { 1220 | border-top: 1px solid var(--bg-5) !important; 1221 | border-left: 1px solid var(--bg-5) !important; 1222 | } 1223 | #main > footer [data-list-scroll-container] { 1224 | border-bottom: 1px solid var(--bg-5) !important; 1225 | box-shadow: 0 -1px var(--bg-5) !important; 1226 | } 1227 | #main > footer + span > .yVipa { 1228 | border-top: 1px solid var(--bg-5) !important; 1229 | border-left: 1px solid var(--bg-5) !important; 1230 | } 1231 | #main > footer .DuUXI { 1232 | border-radius: var(--r-inputs) !important; 1233 | } 1234 | #main img[src *= 'maps.googleapis.com'] { 1235 | filter: invert(0.8) hue-rotate(180deg) !important; 1236 | } 1237 | .dark .vwouH ._1c_mC ._2gsiG { 1238 | color: var(--secondary-stronger) !important; 1239 | } 1240 | [class *= ' color-'] > span:nth-child(2) { 1241 | color: var(--fg-3) !important; 1242 | } 1243 | #main .color-0 { 1244 | color: var(--b1-0) !important; 1245 | } 1246 | #main .bg-color-0 { 1247 | background-color: var(--b1-0) !important; 1248 | } 1249 | #main .color-1 { 1250 | color: var(--b2-0) !important; 1251 | } 1252 | #main .bg-color-1 { 1253 | background-color: var(--b2-0) !important; 1254 | } 1255 | #main .color-2 { 1256 | color: var(--b3-0) !important; 1257 | } 1258 | #main .bg-color-2 { 1259 | background-color: var(--b3-0) !important; 1260 | } 1261 | #main .color-3 { 1262 | color: var(--b4-0) !important; 1263 | } 1264 | #main .bg-color-3 { 1265 | background-color: var(--b4-0) !important; 1266 | } 1267 | #main .color-4 { 1268 | color: var(--b5-0) !important; 1269 | } 1270 | #main .bg-color-4 { 1271 | background-color: var(--b5-0) !important; 1272 | } 1273 | #main .color-5 { 1274 | color: var(--b6-0) !important; 1275 | } 1276 | #main .bg-color-5 { 1277 | background-color: var(--b6-0) !important; 1278 | } 1279 | #main .color-6 { 1280 | color: var(--b7-0) !important; 1281 | } 1282 | #main .bg-color-6 { 1283 | background-color: var(--b7-0) !important; 1284 | } 1285 | #main .color-7 { 1286 | color: var(--b8-0) !important; 1287 | } 1288 | #main .bg-color-7 { 1289 | background-color: var(--b8-0) !important; 1290 | } 1291 | #main .color-8 { 1292 | color: var(--b1-1) !important; 1293 | } 1294 | #main .bg-color-8 { 1295 | background-color: var(--b1-1) !important; 1296 | } 1297 | #main .color-9 { 1298 | color: var(--b2-1) !important; 1299 | } 1300 | #main .bg-color-9 { 1301 | background-color: var(--b2-1) !important; 1302 | } 1303 | #main .color-10 { 1304 | color: var(--b3-1) !important; 1305 | } 1306 | #main .bg-color-10 { 1307 | background-color: var(--b3-1) !important; 1308 | } 1309 | #main .color-11 { 1310 | color: var(--b4-1) !important; 1311 | } 1312 | #main .bg-color-11 { 1313 | background-color: var(--b4-1) !important; 1314 | } 1315 | #main .color-12 { 1316 | color: var(--b5-1) !important; 1317 | } 1318 | #main .bg-color-12 { 1319 | background-color: var(--b5-1) !important; 1320 | } 1321 | #main .color-13 { 1322 | color: var(--b6-1) !important; 1323 | } 1324 | #main .bg-color-13 { 1325 | background-color: var(--b6-1) !important; 1326 | } 1327 | #main .color-14 { 1328 | color: var(--b7-1) !important; 1329 | } 1330 | #main .bg-color-14 { 1331 | background-color: var(--b7-1) !important; 1332 | } 1333 | #main .color-15 { 1334 | color: var(--b1-2) !important; 1335 | } 1336 | #main .bg-color-15 { 1337 | background-color: var(--b1-2) !important; 1338 | } 1339 | #main .color-16 { 1340 | color: var(--b2-2) !important; 1341 | } 1342 | #main .bg-color-16 { 1343 | background-color: var(--b2-2) !important; 1344 | } 1345 | #main .color-17 { 1346 | color: var(--b3-2) !important; 1347 | } 1348 | #main .bg-color-17 { 1349 | background-color: var(--b3-2) !important; 1350 | } 1351 | #main .color-18 { 1352 | color: var(--b4-2) !important; 1353 | } 1354 | #main .bg-color-18 { 1355 | background-color: var(--b4-2) !important; 1356 | } 1357 | #main .color-19 { 1358 | color: var(--b5-2) !important; 1359 | } 1360 | #main .bg-color-19 { 1361 | background-color: var(--b5-2) !important; 1362 | } 1363 | #main .color-20 { 1364 | color: var(--b6-2) !important; 1365 | } 1366 | #main .bg-color-20 { 1367 | background-color: var(--b6-2) !important; 1368 | } 1369 | @media screen and (max-height: 648px) { 1370 | #app > div > [tabindex] { 1371 | min-height: auto; 1372 | } 1373 | } 1374 | @media screen and (max-width: 648px) { 1375 | #app > div > [tabindex] { 1376 | min-width: auto; 1377 | } 1378 | } 1379 | @media screen and (max-width: 720px) { 1380 | .two > div:nth-child(3), 1381 | .three > div:nth-child(3) { 1382 | flex: 0 0 80px !important; 1383 | transition: 0.2s ease; 1384 | } 1385 | .two > div:nth-child(3):hover, 1386 | .three > div:nth-child(3):hover, 1387 | .two > div:nth-child(3):focus-within, 1388 | .three > div:nth-child(3):focus-within { 1389 | flex: 0 0 30% !important; 1390 | } 1391 | .two > div:nth-child(2) > div:nth-child(2) { 1392 | flex: 0 0 calc(100% - 80px) !important; 1393 | margin-left: calc(-30% + 80px); 1394 | } 1395 | .two > div:nth-child(3) { 1396 | min-width: 1px !important; 1397 | transition: 0.3s ease !important; 1398 | transition-delay: var(--c-m-delay) !important; 1399 | } 1400 | .two > div:nth-child(3):hover { 1401 | min-width: 349px !important; 1402 | transition-delay: var(--c-m-hover) !important; 1403 | flex: 0 0 30% !important; 1404 | } 1405 | .two > :nth-child(2) > :nth-child(1) { 1406 | z-index: 201 !important; 1407 | flex: 0 0 30% !important; 1408 | min-width: 350px !important; 1409 | } 1410 | .two > :nth-child(2) > :nth-child(1) [style][tabindex] { 1411 | border-right: 1px solid var(--bg-5) !important; 1412 | } 1413 | .three > div:nth-child(2) > div:nth-child(2) { 1414 | flex: 0 0 calc(100% - 30% - 80px) !important; 1415 | margin-left: calc(-30% + 80px); 1416 | } 1417 | .three > div:nth-child(4) { 1418 | flex: 0 0 calc(100% - 30% - 80px) !important; 1419 | } 1420 | .three > div:nth-child(3):hover { 1421 | flex: 0 0 80px !important; 1422 | } 1423 | .three ._14VS3, 1424 | .three ._1xXdX { 1425 | flex: 0 0 30% !important; 1426 | border-color: transparent !important; 1427 | } 1428 | ._22PcK:not(._30SFc) label { 1429 | padding: 0px; 1430 | } 1431 | #side > header { 1432 | min-width: 240px; 1433 | } 1434 | #side > header + span { 1435 | display: none; 1436 | } 1437 | #side ._1C6Zl ._2Q3SY { 1438 | margin: 0 !important; 1439 | } 1440 | #side ._1C6Zl ._7W_3c { 1441 | position: relative; 1442 | flex-direction: row-reverse !important; 1443 | } 1444 | #side ._1C6Zl ._7W_3c ._2gsiG { 1445 | z-index: 999 !important; 1446 | margin-left: 0 !important; 1447 | position: fixed; 1448 | left: 39px; 1449 | bottom: 6px; 1450 | border-radius: 50%; 1451 | } 1452 | [dir = 'RTL'] #side ._1C6Zl ._7W_3c ._2gsiG { 1453 | left: unset !important; 1454 | right: 36px !important; 1455 | } 1456 | #side ._1C6Zl ._7W_3c ._2gsiG .VOr2j { 1457 | border: 4px solid var(--bg-2); 1458 | left: 20px !important; 1459 | } 1460 | #side ._1C6Zl ._7W_3c ._2gsiG > span { 1461 | display: flex !important; 1462 | flex-direction: row-reverse !important; 1463 | } 1464 | #side ._1C6Zl ._7W_3c .tRtcW, 1465 | #side ._1C6Zl ._7W_3c ._2SPs9, 1466 | #side ._1C6Zl ._7W_3c [data-icon]:not([data-icon*='status-']) { 1467 | display: none; 1468 | } 1469 | ._2NMQ2 { 1470 | overflow: unset !important; 1471 | margin-top: -8px !important; 1472 | margin-left: 0px !important; 1473 | position: absolute !important; 1474 | } 1475 | ._2NMQ2::before { 1476 | content: '' !important; 1477 | z-index: 1 !important; 1478 | position: absolute !important; 1479 | top: -31px !important; 1480 | left: -66px !important; 1481 | height: 53px !important; 1482 | width: 53px !important; 1483 | border-radius: var(--r-avatars) !important; 1484 | box-shadow: inset 0 0 0 3px var(--b4-0) !important; 1485 | animation: 2s aBorder infinite !important; 1486 | } 1487 | [dir = 'RTL'] ._2NMQ2::before { 1488 | left: 63px !important; 1489 | } 1490 | #side ._1C6Zl ._-68As { 1491 | padding: 1.5px; 1492 | z-index: 101; 1493 | position: fixed; 1494 | left: 38px; 1495 | border: 4px solid var(--bg-2); 1496 | background-color: var(--bg-1) !important; 1497 | border-radius: 50%; 1498 | } 1499 | [dir = 'RTL'] #side ._1C6Zl ._-68As { 1500 | left: unset !important; 1501 | right: 42px !important; 1502 | } 1503 | #side ._1C6Zl ._-68As > span > svg { 1504 | padding: 2px; 1505 | height: 14px !important; 1506 | width: 14px !important; 1507 | } 1508 | #side [aria-selected='false'] > div:hover .VOr2j, 1509 | #side [aria-selected='false'] > div:hover ._-68As { 1510 | border-color: var(--bg-3) !important; 1511 | } 1512 | #side [aria-selected='true'] > div .VOr2j, 1513 | #side [aria-selected='true'] > div ._-68As { 1514 | border-color: var(--bg-4) !important; 1515 | } 1516 | #side ._2kHpK { 1517 | min-width: 80px !important; 1518 | } 1519 | } 1520 | .message-in .selectable-text.invisible-space[dir = 'rtl']::before, 1521 | .message-out .selectable-text.invisible-space[dir = 'rtl']::before, 1522 | .message-in a.selectable-text[href]::before, 1523 | .message-out a.selectable-text[href]::before, 1524 | .message-in ._1VzZY[dir = 'ltr'] > [dir = 'ltr']::before, 1525 | .message-out ._1VzZY[dir = 'ltr'] > [dir = 'ltr']::before, 1526 | .message-in .selectable-text.invisible-space[dir = 'rtl']::after, 1527 | .message-out .selectable-text.invisible-space[dir = 'rtl']::after, 1528 | .message-in a.selectable-text[href]::after, 1529 | .message-out a.selectable-text[href]::after, 1530 | .message-in ._1VzZY[dir = 'ltr'] > [dir = 'ltr']::after, 1531 | .message-out ._1VzZY[dir = 'ltr'] > [dir = 'ltr']::after { 1532 | content: unset !important; 1533 | } 1534 | .message-in [data-pre-plain-text] > [dir = 'rtl'], 1535 | .message-out [data-pre-plain-text] > [dir = 'rtl'] { 1536 | padding-bottom: 0.8rem !important; 1537 | } 1538 | .message-in .selectable-text.invisible-space[dir = 'rtl'] > span[class], 1539 | .message-out .selectable-text.invisible-space[dir = 'rtl'] > span[class] { 1540 | display: unset !important; 1541 | } 1542 | @supports (-moz-user-select: none) { 1543 | .message-in .selectable-text.invisible-space[dir = 'rtl']::before, 1544 | .message-out .selectable-text.invisible-space[dir = 'rtl']::before { 1545 | content: unset !important; 1546 | } 1547 | } 1548 | .message-in [style *= 'width'] + div > ._1VzZY[dir = 'rtl'], 1549 | .message-out [style *= 'width'] + div > ._1VzZY[dir = 'rtl'], 1550 | .message-in .video-thumb + div > ._1VzZY[dir = 'rtl'], 1551 | .message-out .video-thumb + div > ._1VzZY[dir = 'rtl'] { 1552 | padding-bottom: 0.8rem !important; 1553 | } 1554 | .message-in .message-text-link::after, 1555 | .message-out .message-text-link::after { 1556 | content: unset !important; 1557 | } 1558 | .message-in ._3B8qp, 1559 | .message-out ._3B8qp { 1560 | padding-bottom: 0; 1561 | } 1562 | .message-in > div:nth-child(2), 1563 | .message-out > div:nth-child(2) { 1564 | min-width: 56px; 1565 | } 1566 | [class*='message-'] img[src$='-64.png'][alt='💋'] { 1567 | animation: aKiss 1.5s infinite; 1568 | } 1569 | [class*='message-'] img[src$='-64.png'][alt='🤩'], 1570 | [class*='message-'] img[src$='-64.png'][alt='😍'], 1571 | [class*='message-'] img[src$='-64.png'][alt='☺️'], 1572 | [class*='message-'] img[src$='-64.png'][alt='❣️'], 1573 | [class*='message-'] img[src$='-64.png'][alt='♥️'], 1574 | [class*='message-'] img[src$='-64.png'][alt='❤️'] { 1575 | animation: aPulse 1.5s infinite; 1576 | } 1577 | .gm-style img[src *= 'images/google'], 1578 | .gm-style img[src *= 'maps.googleapis.com'], 1579 | .gm-style img[style *= 'width: 256px'][style *= 'height: 256px'] { 1580 | filter: invert(0.8) hue-rotate(180deg) contrast(120%) !important; 1581 | } 1582 | .gm-style img[src *= 'com/pp?'], 1583 | .gm-style [style *= 'height: 40px; width: 40px'] { 1584 | border-radius: 50% !important; 1585 | } 1586 | .gm-style [controlwidth = '40'] * { 1587 | filter: invert(0.9) !important; 1588 | } 1589 | .gm-style [controlwidth = '40'] * [style *= 'd-color: rgb(255, 255, 255)'] { 1590 | background-color: var(--bg-0) !important; 1591 | } 1592 | .gm-style [style *= 'd-color: rgb(245, 245, 245)'] { 1593 | background-color: var(--bg-4) !important; 1594 | } 1595 | .gm-style [style *= ' color: rgb(68, 68, 68)'] { 1596 | color: var(--fg-3) !important; 1597 | } 1598 | .gm-style .BPkae { 1599 | border-top-color: var(--modal-background) !important; 1600 | } 1601 | .gm-style ._3Q8RX { 1602 | background-color: var(--ac-1) !important; 1603 | } 1604 | ._3nNEI { 1605 | box-shadow: 0 -1px var(--bg-3) !important; 1606 | } 1607 | 1608 | /* my changes */ 1609 | 1610 | :root:not(#z), 1611 | .dark:not(#z) { 1612 | --app-dimensions: 100%; 1613 | --side-width: 7.5%; 1614 | --message-padding: 2%; 1615 | --signature: "dark by obvionaoe"; 1616 | --changes: "https://github.com/obvionaoe/dark"; 1617 | } 1618 | 1619 | #app > div::after { 1620 | top: var(--bg-blur-s); 1621 | right: var(--bg-blur-s); 1622 | bottom: var(--bg-blur-s); 1623 | left: var(--bg-blur-s); 1624 | height: unset; 1625 | width: unset; 1626 | filter: blur(var(--bg-blur)) opacity(var(--bg-opacity)) invert(var(--bg-invert)) hue-rotate(var(--bg-hue)); 1627 | background-color: transparent !important; 1628 | background-position: var(--bg-pos) !important; 1629 | background-image: none !important; 1630 | background-repeat: var(--bg-rep) !important; 1631 | background-size: var(--bg-size) !important; 1632 | content: '' !important; 1633 | } 1634 | 1635 | .landing-header::after { 1636 | font-size: 14px; 1637 | font-weight: 500; 1638 | position: absolute; 1639 | content: '🌛 ' var(--signature) !important; 1640 | } 1641 | html > body [data-asset-intro-image-light] + div h1 + div[class]::before { 1642 | display: block; 1643 | font-size: 16px; 1644 | margin-bottom: -16px; 1645 | white-space: pre-wrap; 1646 | content: var(--changes); 1647 | } 1648 | html > body [data-asset-intro-image-light] + div h1 + div[class]::after { 1649 | display: block; 1650 | font-size: 16px; 1651 | margin-top: 16px; 1652 | padding-top: 24px; 1653 | margin-bottom: -16px; 1654 | font-weight: bold; 1655 | content: '🌛 ' var(--signature) !important; 1656 | border-top: 1px solid #3b4250; 1657 | } 1658 | 1659 | @media (min-width: 1441px) { 1660 | /* ... */ 1661 | #app > div > [tabindex], 1662 | ._11ARv { 1663 | width: var(--app-dimensions) !important; 1664 | max-width: var(--app-dimensions) !important; 1665 | min-height: var(--app-dimensions) !important; 1666 | margin-top: -19px !important; 1667 | } 1668 | .app-wrapper-web .h70RQ { 1669 | height: var(--app-dimensions) !important; 1670 | top: 0 !important; 1671 | } 1672 | } 1673 | 1674 | /*side pane width*/ 1675 | @media screen and (min-width: 1301px) { 1676 | .two ._2NwAr { 1677 | flex: var(--side-width) !important; 1678 | } 1679 | 1680 | html[dir=ltr] ._1RAno, html[dir=rtl] ._1RAno { 1681 | padding-left: var(--message-padding) !important; 1682 | padding-right: var(--message-padding) !important; 1683 | } 1684 | } 1685 | --------------------------------------------------------------------------------