├── .editorconfig ├── .gitignore ├── .scss-lint.yml ├── CREDITS ├── LICENSE ├── Makefile ├── README.md ├── gtk-2.0 └── gtkrc ├── gtk-3.0 ├── assets │ ├── assets.sketch │ ├── checkbox-checked-dark.png │ ├── checkbox-checked-insensitive-dark.png │ ├── checkbox-checked-insensitive.png │ ├── checkbox-checked.png │ ├── checkbox-mixed-dark.png │ ├── checkbox-mixed-insensitive-dark.png │ ├── checkbox-mixed-insensitive.png │ ├── checkbox-mixed.png │ ├── checkbox-unchecked-dark.png │ ├── checkbox-unchecked-insensitive-dark.png │ ├── checkbox-unchecked-insensitive.png │ ├── checkbox-unchecked.png │ ├── grid-selection-checked-dark.png │ ├── grid-selection-checked.png │ ├── grid-selection-unchecked-dark.png │ ├── grid-selection-unchecked.png │ ├── menuitem-checkbox-checked-hover.png │ ├── menuitem-checkbox-checked-insensitive.png │ ├── menuitem-checkbox-checked.png │ ├── menuitem-checkbox-mixed-hover.png │ ├── menuitem-checkbox-mixed-insensitive.png │ ├── menuitem-checkbox-mixed.png │ ├── menuitem-radio-checked-hover.png │ ├── menuitem-radio-checked-insensitive.png │ ├── menuitem-radio-checked.png │ ├── radio-checked-dark.png │ ├── radio-checked-insensitive-dark.png │ ├── radio-checked-insensitive.png │ ├── radio-checked.png │ ├── radio-mixed-dark.png │ ├── radio-mixed-insensitive-dark.png │ ├── radio-mixed-insensitive.png │ ├── radio-mixed.png │ ├── radio-unchecked-dark.png │ ├── radio-unchecked-insensitive-dark.png │ ├── radio-unchecked-insensitive.png │ └── radio-unchecked.png ├── gtk-dark.css ├── gtk.css ├── gtk.gresource.xml └── scss │ ├── _colors.scss │ ├── _functions.scss │ ├── _global.scss │ ├── _widgets.scss │ ├── apps │ ├── _gedit.scss │ ├── _lightdm.scss │ ├── _nautilus.scss │ ├── _nemo.scss │ ├── _panel.scss │ ├── _synaptic.scss │ ├── _unity.scss │ └── _xfce.scss │ ├── gtk-dark.scss │ ├── gtk.scss │ └── widgets │ ├── _actionbar.scss │ ├── _base.scss │ ├── _button.scss │ ├── _calendar.scss │ ├── _choosers.scss │ ├── _entry.scss │ ├── _grid.scss │ ├── _infobar.scss │ ├── _menu.scss │ ├── _misc.scss │ ├── _notebook.scss │ ├── _osd.scss │ ├── _overshoot.scss │ ├── _progress.scss │ ├── _scrollbar.scss │ ├── _sidebar.scss │ ├── _spinner.scss │ ├── _toggle.scss │ ├── _toolbar.scss │ ├── _view.scss │ └── _window.scss ├── index.theme └── metacity-1 ├── metacity-theme-2.xml └── metacity-theme-3.xml /.editorconfig: -------------------------------------------------------------------------------- 1 | # EditorConfig helps developers define and maintain consistent 2 | # coding styles between different editors and IDEs 3 | # editorconfig.org 4 | 5 | root = true 6 | 7 | 8 | [*] 9 | 10 | # change these settings to your own preference 11 | indent_style = space 12 | indent_size = 4 13 | 14 | # we recommend you to keep these unchanged 15 | end_of_line = lf 16 | charset = utf-8 17 | trim_trailing_whitespace = true 18 | insert_final_newline = true 19 | 20 | [*.md] 21 | trim_trailing_whitespace = false 22 | 23 | [Makefile] 24 | indent_style = tab 25 | indent_size = 4 26 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Ignore Backup Copies from Text Editor 2 | *~ 3 | .DS_Store 4 | 5 | # Ignore SASS files 6 | .sass-cache 7 | dist 8 | 9 | # Ignore compiled gresource 10 | *.gresource 11 | -------------------------------------------------------------------------------- /.scss-lint.yml: -------------------------------------------------------------------------------- 1 | linters: 2 | 3 | BangFormat: 4 | enabled: true 5 | space_before_bang: true 6 | space_after_bang: false 7 | 8 | BorderZero: 9 | enabled: true 10 | 11 | ColorKeyword: 12 | enabled: true 13 | 14 | ColorVariable: 15 | enabled: false 16 | 17 | Comment: 18 | enabled: false 19 | 20 | DebugStatement: 21 | enabled: true 22 | 23 | DeclarationOrder: 24 | enabled: true 25 | 26 | DuplicateProperty: 27 | enabled: true 28 | 29 | ElsePlacement: 30 | enabled: true 31 | style: same_line 32 | 33 | EmptyLineBetweenBlocks: 34 | enabled: true 35 | ignore_single_line_blocks: false 36 | 37 | EmptyRule: 38 | enabled: true 39 | 40 | FinalNewline: 41 | enabled: true 42 | present: true 43 | 44 | HexLength: 45 | enabled: true 46 | style: short 47 | 48 | HexNotation: 49 | enabled: true 50 | style: lowercase 51 | 52 | HexValidation: 53 | enabled: true 54 | 55 | IdSelector: 56 | enabled: true 57 | 58 | ImportantRule: 59 | enabled: true 60 | 61 | ImportPath: 62 | enabled: true 63 | leading_underscore: false 64 | filename_extension: false 65 | 66 | Indentation: 67 | enabled: true 68 | character: space 69 | width: 4 70 | 71 | LeadingZero: 72 | enabled: true 73 | style: exclude_zero 74 | 75 | MergeableSelector: 76 | enabled: true 77 | 78 | NameFormat: 79 | enabled: false 80 | convention: hyphenated_lowercase 81 | 82 | NestingDepth: 83 | enabled: true 84 | max_depth: 4 85 | 86 | PlaceholderInExtend: 87 | enabled: true 88 | 89 | PropertyCount: 90 | enabled: false 91 | 92 | PropertySortOrder: 93 | enabled: false 94 | 95 | PropertySpelling: 96 | enabled: true 97 | extra_properties: [] 98 | 99 | QualifyingElement: 100 | enabled: true 101 | allow_element_with_attribute: false 102 | allow_element_with_class: false 103 | allow_element_with_id: false 104 | 105 | SelectorDepth: 106 | enabled: true 107 | max_depth: 3 108 | 109 | SelectorFormat: 110 | enabled: true 111 | convention: hyphenated_lowercase 112 | 113 | Shorthand: 114 | enabled: true 115 | 116 | SingleLinePerProperty: 117 | enabled: true 118 | allow_single_line_rule_sets: true 119 | 120 | SingleLinePerSelector: 121 | enabled: false 122 | 123 | SpaceAfterComma: 124 | enabled: true 125 | 126 | SpaceAfterPropertyColon: 127 | enabled: true 128 | style: one_space 129 | 130 | SpaceAfterPropertyName: 131 | enabled: true 132 | 133 | SpaceBeforeBrace: 134 | enabled: true 135 | style: space 136 | allow_single_line_padding: true 137 | 138 | SpaceBetweenParens: 139 | enabled: false 140 | spaces: 0 141 | 142 | StringQuotes: 143 | enabled: true 144 | style: double_quotes 145 | 146 | TrailingSemicolon: 147 | enabled: true 148 | 149 | TrailingZero: 150 | enabled: true 151 | 152 | UnnecessaryMantissa: 153 | enabled: true 154 | 155 | UnnecessaryParentReference: 156 | enabled: true 157 | 158 | UrlFormat: 159 | enabled: false 160 | 161 | UrlQuotes: 162 | enabled: true 163 | 164 | VariableForProperty: 165 | enabled: false 166 | 167 | VendorPrefixes: 168 | enabled: false 169 | identifier_list: base 170 | include: [] 171 | exclude: [] 172 | 173 | ZeroUnit: 174 | enabled: true 175 | 176 | Compass::*: 177 | enabled: false 178 | -------------------------------------------------------------------------------- /CREDITS: -------------------------------------------------------------------------------- 1 | Simon Steinbeiß 2 | Joern Konopka 3 | Georgi Karavasilev 4 | David Barr 5 | -------------------------------------------------------------------------------- /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 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | SASS=scss 2 | GLIB_COMPILE_RESOURCES=glib-compile-resources 3 | RES_DIR=gtk-3.0 4 | SCSS_DIR=$(RES_DIR)/scss 5 | DIST_DIR=$(RES_DIR)/dist 6 | INSTALL_DIR=$(DESTDIR)/usr/share/themes/Ozon 7 | 8 | all: gresource 9 | 10 | css: 11 | $(SASS) --sourcemap=none --update $(SCSS_DIR):$(DIST_DIR) 12 | 13 | gresource: css 14 | $(GLIB_COMPILE_RESOURCES) --sourcedir=$(RES_DIR) $(RES_DIR)/gtk.gresource.xml 15 | 16 | clean: 17 | rm -rf $(DIST_DIR) 18 | rm -f $(RES_DIR)/gtk.gresource 19 | 20 | install: all 21 | install -d -m755 $(INSTALL_DIR) 22 | 23 | for f in *; do cp -pr $$f $(INSTALL_DIR)/; done 24 | 25 | uninstall: 26 | rm -rf $(INSTALL_DIR) 27 | 28 | .PHONY: all 29 | .PHONY: css 30 | .PHONY: gresource 31 | .PHONY: clean 32 | .PHONY: install 33 | .PHONY: uninstall 34 | 35 | .DEFAULT_GOAL := all 36 | 37 | # vim: set ts=4 sw=4 tw=0 noet : 38 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Official GTK theme for [Ozon OS](https://github.com/ozonos/). 2 | 3 | ### Manual installation 4 | 5 | First, you need to compile the theme using the [Sass](http://sass-lang.com/) compiler. 6 | 7 | To install Sass, install ruby and the gem command using your distro's package manager. Then install `sass` with the `gem` command, 8 | 9 | `gem install sass` 10 | 11 | You'll also need the following commands in your path to generate the gresource binary. Install them using your distro's package manager. 12 | 13 | * `glib-compile-schemas` 14 | * `gdk-pixbuf-pixdata` 15 | 16 | After installing all the dependencies, switch to the cloned directory and, run the following in Terminal, 17 | 18 | ``` 19 | make 20 | sudo make install 21 | ``` 22 | 23 | To set the theme in Gnome, run the following commands in Terminal, 24 | 25 | ``` 26 | gsettings set org.gnome.desktop.interface gtk-theme "Ozon" 27 | gsettings set org.gnome.desktop.wm.preferences theme "Ozon" 28 | ``` 29 | 30 | ### Requirements 31 | 32 | * GTK+ 3.14 33 | * Murrine engine 34 | 35 | ### Code and license 36 | 37 | Report bugs or contribute at [GitHub](https://github.com/ozonos/ozon-gtk-theme) 38 | 39 | License: GPL-3.0+ 40 | -------------------------------------------------------------------------------- /gtk-2.0/gtkrc: -------------------------------------------------------------------------------- 1 | # Numix GTK Theme 2 | 3 | gtk-color-scheme = "bg_color:#f6f6f6\nfg_color:#333333\nbase_color:#ffffff\ntext_color:#333333\nselected_bg_color:#9575cd\nselected_fg_color:#ffffff\ntooltip_bg_color:#333333\ntooltip_fg_color:#eeeeee\ntitlebar_bg_color:#f6f6f6\ntitlebar_fg_color:#333333\nmenubar_bg_color:#f6f6f6\nmenubar_fg_color:#333333\ntoolbar_bg_color:#f6f6f6\ntoolbar_fg_color:#333333\nmenu_bg_color:#ffffff\nmenu_fg_color:#333333\npanel_bg_color:#333333\npanel_fg_color:#eeeeee\nlink_color:#f06860" 4 | 5 | # Default Style 6 | 7 | style "murrine-default" { 8 | GtkArrow::arrow-scaling= 0.6 9 | 10 | GtkButton::child-displacement-x = 0 11 | GtkButton::child-displacement-y = 0 12 | 13 | GtkButton::default-border = { 0, 0, 0, 0 } 14 | 15 | GtkButtonBox::child-min-height = 26 16 | 17 | GtkCheckButton::indicator-size = 16 18 | 19 | # The following line hints to gecko (and possibly other appliations) 20 | # that the entry should be drawn transparently on the canvas. 21 | # Without this, gecko will fill in the background of the entry. 22 | GtkEntry::honors-transparent-bg-hint = 1 23 | GtkEntry::state-hint = 0 24 | 25 | GtkExpander::expander-size = 16 26 | 27 | GtkImage::x-ayatana-indicator-dynamic = 1 28 | 29 | GtkMenu::horizontal-padding = 0 30 | GtkMenu::vertical-padding = 0 31 | 32 | GtkMenuBar::internal-padding = 0 33 | GtkMenuBar::window-dragging = 1 34 | 35 | GtkMenuItem::arrow-scaling= 0.5 36 | 37 | GtkPaned::handle-size = 1 38 | 39 | GtkProgressBar::min-horizontal-bar-height = 6 40 | GtkProgressBar::min-vertical-bar-width = 6 41 | 42 | GtkRange::trough-border = 0 43 | GtkRange::slider-width = 12 44 | GtkRange::stepper-size = 12 45 | GtkRange::stepper_spacing = 0 46 | GtkRange::trough-under-steppers = 1 47 | 48 | GtkScale::slider-length = 16 49 | GtkScale::slider-width = 16 50 | GtkScale::trough-side-details = 1 51 | 52 | GtkScrollbar::activate-slider = 1 53 | GtkScrollbar::has-backward-stepper = 0 54 | GtkScrollbar::has-forward-stepper = 0 55 | GtkScrollbar::has-secondary-backward-stepper = 0 56 | GtkScrollbar::has-secondary-forward-stepper = 0 57 | GtkScrollbar::min-slider-length = 80 58 | GtkScrollbar::slider-width = 12 59 | GtkScrollbar::trough-border = 0 60 | 61 | GtkScrolledWindow::scrollbar-spacing = 0 62 | GtkScrolledWindow::scrollbars-within-bevel = 1 63 | 64 | GtkSeparatorMenuItem::horizontal-padding = 0 65 | 66 | GtkToolbar::internal-padding = 0 67 | 68 | GtkTreeView::expander-size = 11 69 | GtkTreeView::vertical-separator = 0 70 | 71 | GtkWidget::focus-line-width = 1 72 | # The following line prevents the Firefox tabs 73 | # from jumping a few pixels when you create a new tab 74 | GtkWidget::focus-padding = 0 75 | 76 | GtkWidget::wide-separators = 1 77 | GtkWidget::separator-width = 1 78 | GtkWidget::separator-height = 1 79 | 80 | GtkWindow::resize-grip-height = 0 81 | GtkWindow::resize-grip-width = 0 82 | 83 | WnckTasklist::fade-overlay-rect = 0 84 | 85 | GnomeHRef::link_color = @link_color 86 | GtkHTML::link-color = @link_color 87 | GtkIMHtmlr::hyperlink-color = @link_color 88 | GtkIMHtml::hyperlink-color = @link_color 89 | GtkWidget::link-color = @link_color 90 | GtkWidget::visited-link-color = @text_color 91 | 92 | GtkToolbar::shadow-type = GTK_SHADOW_NONE # Makes toolbars flat and unified 93 | GtkMenuBar::shadow-type = GTK_SHADOW_NONE # Makes menubars flat and unified 94 | 95 | xthickness = 1 96 | ythickness = 1 97 | 98 | fg[NORMAL] = @fg_color 99 | fg[PRELIGHT] = @fg_color 100 | fg[SELECTED] = @selected_fg_color 101 | fg[ACTIVE] = @fg_color 102 | fg[INSENSITIVE] = mix (0.5, @bg_color, @fg_color) 103 | 104 | bg[NORMAL] = @bg_color 105 | bg[PRELIGHT] = shade (1.02, @bg_color) 106 | bg[SELECTED] = @selected_bg_color 107 | bg[ACTIVE] = shade (0.9, @bg_color) 108 | bg[INSENSITIVE] = @bg_color 109 | 110 | base[NORMAL] = @base_color 111 | base[PRELIGHT] = shade (0.95, @base_color) 112 | base[SELECTED] = @selected_bg_color 113 | base[ACTIVE] = @selected_bg_color 114 | base[INSENSITIVE] = shade (0.85, @base_color) 115 | 116 | text[NORMAL] = @text_color 117 | text[PRELIGHT] = @text_color 118 | text[SELECTED] = @selected_fg_color 119 | text[ACTIVE] = @selected_fg_color 120 | text[INSENSITIVE] = mix (0.5, @base_color, @text_color) 121 | 122 | engine "murrine" { 123 | animation = FALSE 124 | arrowstyle = 1 # 0 = normal arrows, 1 = filled arrows 125 | border_shades = { 1.0, 1.0 } # gradient to draw on border 126 | colorize_scrollbar = FALSE 127 | comboboxstyle = 0 # 0 = normal combobox, 1 = colorized combobox below arrow 128 | contrast = 0.8 # overal contrast with borders 129 | focusstyle = 1 # 0 = none, 1 = grey dotted, 2 = colored with fill, 3 = colored glow 130 | glazestyle = 0 # 0 = flat highlight, 1 = curved highlight, 2 = concave, 3 = top curved highlight, 4 = beryl highlight 131 | glowstyle = 0 # 0 = glow on top, 1 = glow on bottom, 2 = glow on top and bottom, 3 = glow on middle vertically, 4 = glow on middle horizontally, 5 = glow on all sides 132 | glow_shade = 1.0 # amount of glow 133 | gradient_shades = { 1.0, 1.0, 1.0, 1.0 } # gradient to draw on widgets 134 | highlight_shade = 1.0 # amount of highlight 135 | lightborder_shade = 1.0 # amount of inset light border 136 | lightborderstyle = 1 # 0 = lightborder on top side, 1 = lightborder on all sides 137 | listviewheaderstyle = 0 # 0 = flat, 1 = glassy, 2 = raised 138 | listviewstyle = 0 # 0 = none, 1 = dotted, 2 = line 139 | menubaritemstyle = 0 # 0 = menuitem look, 1 = button look 140 | menubarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient, 3 = striped 141 | menuitemstyle = 0 # 0 = flat, 1 = glassy, 2 = striped 142 | menustyle = 0 # 0 = none, 1 = vertical striped 143 | progressbarstyle = 0 # 0 = none, 1 = diagonal striped, 2 = vertical striped 144 | reliefstyle = 0 # 0 = flat, 1 = inset, 2 = shadow, 3 = shadow with gradient, 4 = stronger shadow with gradient 145 | roundness = 4 # roundness of widgets 146 | scrollbarstyle = 0 # 0 = none, 1 = circles, 2 = handles, 3 = diagonal stripes, 4 = diagonal stripes and handles, 5 = horizontal stripes, 6 = horizontal stripes and handles 147 | sliderstyle = 0 # 0 = none, 1 = handles 148 | stepperstyle = 1 # 0 = standard, 1 = integrated stepper handles 149 | toolbarstyle = 0 # 0 = flat, 1 = glassy, 2 = gradient 150 | } 151 | } 152 | 153 | style "murrine-wide" { 154 | xthickness = 2 155 | ythickness = 2 156 | } 157 | 158 | style "murrine-wider" { 159 | xthickness = 3 160 | ythickness = 3 161 | } 162 | 163 | style "murrine-thin" { 164 | xthickness = 0 165 | ythickness = 0 166 | } 167 | 168 | # Notebook 169 | 170 | style "murrine-notebook-bg" { 171 | bg[NORMAL] = @base_color 172 | bg[ACTIVE] = shade (0.87, @base_color) 173 | } 174 | 175 | style "murrine-notebook" = "murrine-notebook-bg" { 176 | xthickness = 2 177 | ythickness = 2 178 | 179 | engine "murrine" { 180 | roundness = 0 181 | } 182 | } 183 | 184 | # Various Standard Widgets 185 | 186 | style "murrine-button" = "murrine-wider" { 187 | bg[NORMAL] = shade (1.08, @bg_color) 188 | bg[PRELIGHT] = shade (1.10, @bg_color) 189 | bg[ACTIVE] = shade (0.95, @bg_color) 190 | bg[INSENSITIVE] = shade (0.85, @bg_color) 191 | 192 | engine "murrine" { 193 | } 194 | } 195 | 196 | style "murrine-scrollbar" { 197 | bg[NORMAL] = mix (0.21, @fg_color, @bg_color) 198 | bg[PRELIGHT] = mix (0.31, @fg_color, @bg_color) 199 | bg[ACTIVE] = @selected_bg_color 200 | 201 | engine "murrine" { 202 | roundness = 0 203 | contrast = 0.0 204 | border_shades = { 0.9, 0.9 } 205 | trough_shades = { 0.97, 0.97 } 206 | trough_border_shades = { 1.0, 1.0 } 207 | } 208 | } 209 | 210 | style "murrine-overlay-scrollbar" { 211 | bg[ACTIVE] = shade (0.8, @bg_color) 212 | bg[INSENSITIVE] = shade (0.97, @bg_color) 213 | 214 | base[SELECTED] = shade (0.6, @base_color) 215 | base[INSENSITIVE] = shade (0.85, @base_color) 216 | } 217 | 218 | style "murrine-scale" = "murrine-thin" { 219 | bg[NORMAL] = @bg_color 220 | bg[ACTIVE] = @bg_color 221 | bg[SELECTED] = @selected_bg_color 222 | bg[INSENSITIVE] = shade (0.95, @bg_color) 223 | 224 | engine "murrine" { 225 | roundness = 8 226 | gradient_shades = { 1.08, 1.08, 1.08, 1.08 } 227 | border_shades = { 1.0, 1.0 } 228 | trough_shades = { 1.08, 1.08 } 229 | trough_border_shades = { 0.8, 0.8 } 230 | } 231 | } 232 | 233 | style "murrine-progressbar" = "murrine-thin" { 234 | bg[NORMAL] = @bg_color 235 | bg[ACTIVE] = shade (1.08, @bg_color) 236 | 237 | fg[PRELIGHT] = @selected_fg_color 238 | 239 | engine "murrine" { 240 | roundness = 4 241 | border_shades = { 1.2, 1.2 } 242 | trough_border_shades = { 0.8, 0.8 } 243 | } 244 | } 245 | 246 | style "murrine-treeview-header" = "murrine-button" { 247 | engine "murrine" { 248 | roundness = 0 249 | } 250 | } 251 | 252 | style "murrine-treeview" { 253 | engine "murrine" { 254 | roundness = 0 255 | } 256 | } 257 | 258 | style "murrine-frame-title" { 259 | fg[NORMAL] = lighter (@fg_color) 260 | } 261 | 262 | style "murrine-tooltips" { 263 | xthickness = 5 264 | ythickness = 5 265 | 266 | bg[NORMAL] = @tooltip_bg_color 267 | bg[SELECTED] = @tooltip_bg_color 268 | 269 | fg[NORMAL] = @tooltip_fg_color 270 | 271 | engine "murrine" { 272 | textstyle = 0 273 | roundness = 4 274 | rgba = FALSE 275 | } 276 | } 277 | 278 | style "murrine-spinbutton" = "murrine-button" { 279 | engine "murrine" { 280 | } 281 | } 282 | 283 | style "murrine-radiocheck" = "murrine-default" { 284 | bg[SELECTED] = @base_color 285 | 286 | text[NORMAL] = @selected_bg_color 287 | text[PRELIGHT] = @selected_bg_color 288 | } 289 | 290 | style "murrine-entry" = "murrine-wider" { 291 | engine "murrine" { 292 | border_shades = { 1.15, 1.15 } 293 | } 294 | } 295 | 296 | style "metacity-frame" = "murrine-default" { 297 | bg[SELECTED] = @selected_bg_color 298 | } 299 | 300 | style "murrine-statusbar" { } 301 | style "murrine-comboboxentry" = "murrine-entry" { } 302 | style "murrine-hscale" = "murrine-scale" { } 303 | style "murrine-vscale" = "murrine-scale" { } 304 | style "murrine-hscrollbar" = "murrine-scrollbar" { } 305 | style "murrine-vscrollbar" = "murrine-scrollbar" { } 306 | 307 | # Menus 308 | 309 | style "murrine-menu" = "murrine-thin" { 310 | bg[NORMAL] = @menu_bg_color 311 | bg[PRELIGHT] = @selected_bg_color 312 | bg[SELECTED] = @selected_bg_color 313 | bg[ACTIVE] = @menu_bg_color 314 | bg[INSENSITIVE] = @menu_bg_color 315 | 316 | fg[NORMAL] = @menu_fg_color 317 | fg[PRELIGHT] = @selected_fg_color 318 | fg[SELECTED] = @selected_fg_color 319 | fg[ACTIVE] = @selected_fg_color 320 | fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color) 321 | 322 | text[NORMAL] = @menu_fg_color 323 | text[PRELIGHT] = @selected_fg_color 324 | text[SELECTED] = @selected_fg_color 325 | text[ACTIVE] = @selected_fg_color 326 | text[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color) 327 | 328 | engine "murrine" { 329 | roundness = 0 330 | } 331 | } 332 | 333 | style "murrine-menu-item" = "murrine-wider" { 334 | bg[PRELIGHT] = @selected_bg_color 335 | bg[SELECTED] = @selected_bg_color 336 | bg[ACTIVE] = @selected_bg_color 337 | 338 | fg[NORMAL] = @menu_fg_color # Fix for XFCE menu text 339 | fg[PRELIGHT] = @selected_fg_color 340 | fg[SELECTED] = @selected_fg_color 341 | fg[ACTIVE] = @selected_fg_color 342 | fg[INSENSITIVE] = mix (0.5, @menu_bg_color, @menu_fg_color) 343 | 344 | engine "murrine" { 345 | textstyle = 0 346 | border_shades = { 1.2, 1.2 } 347 | } 348 | } 349 | 350 | style "murrine-separator-menu-item" = "murrine-thin" { } 351 | 352 | style "murrine-menubar" { 353 | bg[NORMAL] = @menubar_bg_color 354 | bg[PRELIGHT] = mix (0.21, @menubar_fg_color, @menubar_bg_color) 355 | bg[SELECTED] = mix (0.21, @menubar_fg_color, @menubar_bg_color) 356 | bg[ACTIVE] = shade (0.9, @menubar_bg_color) 357 | bg[INSENSITIVE] = @menubar_bg_color 358 | 359 | fg[NORMAL] = @menubar_fg_color 360 | fg[PRELIGHT] = shade (1.08, @menubar_fg_color) 361 | fg[SELECTED] = shade (1.08, @menubar_fg_color) 362 | fg[ACTIVE] = @menubar_fg_color 363 | fg[INSENSITIVE] = mix (0.5, @menubar_bg_color, @menubar_fg_color) 364 | 365 | engine "murrine" { 366 | roundness = 0 367 | } 368 | } 369 | 370 | style "murrine-menubaritem" { 371 | bg[NORMAL] = @menubar_bg_color 372 | bg[PRELIGHT] = mix (0.21, @menubar_fg_color, @menubar_bg_color) 373 | bg[SELECTED] = mix (0.21, @menubar_fg_color, @menubar_bg_color) 374 | bg[ACTIVE] = shade (0.9, @menubar_bg_color) 375 | bg[INSENSITIVE] = @menubar_bg_color 376 | 377 | fg[NORMAL] = @menubar_fg_color 378 | fg[PRELIGHT] = shade (1.08, @menubar_fg_color) 379 | fg[SELECTED] = shade (1.08, @menubar_fg_color) 380 | fg[ACTIVE] = @menubar_fg_color 381 | fg[INSENSITIVE] = mix (0.5, @menubar_bg_color, @menubar_fg_color) 382 | 383 | engine "murrine" { 384 | roundness = 0 385 | } 386 | } 387 | 388 | # Toolbars 389 | 390 | style "murrine-toolbar" = "murrine-thin" { 391 | bg[NORMAL] = @bg_color 392 | bg[PRELIGHT] = shade (1.02, @bg_color) 393 | bg[SELECTED] = @selected_bg_color 394 | bg[ACTIVE] = shade (0.9, @bg_color) 395 | bg[INSENSITIVE] = @bg_color 396 | 397 | fg[NORMAL] = @fg_color 398 | fg[PRELIGHT] = @fg_color 399 | fg[SELECTED] = @selected_fg_color 400 | fg[ACTIVE] = @fg_color 401 | fg[INSENSITIVE] = mix (0.5, @bg_color, @fg_color) 402 | 403 | engine "murrine" { 404 | } 405 | } 406 | 407 | style "murrine-toolbutton" = "murrine-button" { 408 | bg[NORMAL] = shade (1.08, @bg_color) 409 | bg[PRELIGHT] = shade (1.10, @bg_color) 410 | bg[SELECTED] = @selected_bg_color 411 | bg[ACTIVE] = shade (0.95, @bg_color) 412 | bg[INSENSITIVE] = shade (0.85, @bg_color) 413 | 414 | fg[NORMAL] = @fg_color 415 | fg[PRELIGHT] = @fg_color 416 | fg[SELECTED] = @selected_fg_color 417 | fg[ACTIVE] = @fg_color 418 | fg[INSENSITIVE] = mix (0.5, @bg_color, @fg_color) 419 | 420 | engine "murrine" { 421 | } 422 | } 423 | 424 | class "GtkToolbar" style "murrine-toolbar" 425 | class "GtkHandleBox" style "murrine-toolbar" 426 | widget_class "*Toolbar*.*Separator*" style "murrine-toolbar" 427 | 428 | # Panels 429 | 430 | style "murrine-panel" = "murrine-thin" { 431 | xthickness = 2 432 | 433 | bg[NORMAL] = @panel_bg_color 434 | bg[PRELIGHT] = mix (0.21, @panel_fg_color, @panel_bg_color) 435 | bg[SELECTED] = mix (0.21, @panel_fg_color, @panel_bg_color) 436 | bg[ACTIVE] = shade (0.8, @panel_bg_color) 437 | bg[INSENSITIVE] = @panel_bg_color 438 | 439 | fg[NORMAL] = @panel_fg_color 440 | fg[PRELIGHT] = shade (1.08, @panel_fg_color) 441 | fg[SELECTED] = shade (1.08, @panel_fg_color) 442 | fg[ACTIVE] = @panel_fg_color 443 | fg[INSENSITIVE] = mix (0.5, @panel_bg_color, @panel_fg_color) 444 | 445 | base[NORMAL] = @panel_bg_color 446 | base[PRELIGHT] = mix (0.21, @panel_fg_color, @panel_bg_color) 447 | base[SELECTED] = mix (0.21, @panel_fg_color, @panel_bg_color) 448 | base[ACTIVE] = shade (0.9, @panel_bg_color) 449 | base[INSENSITIVE] = @panel_bg_color 450 | 451 | text[NORMAL] = @panel_fg_color 452 | text[PRELIGHT] = shade (1.08, @panel_fg_color) 453 | text[SELECTED] = shade (1.08, @panel_fg_color) 454 | text[ACTIVE] = @panel_fg_color 455 | text[INSENSITIVE] = mix (0.5, @panel_bg_color, @panel_fg_color) 456 | 457 | engine "murrine" { 458 | roundness = 0 459 | contrast = 0.0 460 | } 461 | } 462 | 463 | widget "*PanelWidget*" style "murrine-panel" 464 | widget "*PanelApplet*" style "murrine-panel" 465 | widget "*fast-user-switch*" style "murrine-panel" 466 | widget "*CPUFreq*Applet*" style "murrine-panel" 467 | widget "*indicator-applet*" style "murrine-panel" 468 | class "PanelApp*" style "murrine-panel" 469 | class "PanelToplevel*" style "murrine-panel" 470 | widget_class "*PanelToplevel*" style "murrine-panel" 471 | widget_class "*notif*" style "murrine-panel" 472 | widget_class "*Notif*" style "murrine-panel" 473 | widget_class "*Tray*" style "murrine-panel" 474 | widget_class "*tray*" style "murrine-panel" 475 | widget_class "*computertemp*" style "murrine-panel" 476 | widget_class "*Applet*Tomboy*" style "murrine-panel" 477 | widget_class "*Applet*Netstatus*" style "murrine-panel" 478 | widget "*gdm-user-switch-menubar*" style "murrine-panel" 479 | 480 | style "bold-panel-item" { 481 | font_name = "Bold" 482 | 483 | engine "murrine" { 484 | roundness = 0 485 | } 486 | } 487 | 488 | widget "*Panel*MenuBar*" style "bold-panel-item" 489 | widget "*gimmie*" style "bold-panel-item" 490 | 491 | # widget_class "*Mail*" style "murrine-panel" # Disabled to fix Evolution bug 492 | # class "*Panel*" style "murrine-panel" # Disabled to fix bug 493 | 494 | # XFCE Styles 495 | 496 | style "workspace-switcher" = "murrine-panel" { 497 | bg[SELECTED] = @selected_bg_color 498 | } 499 | 500 | style "xfce-header" { 501 | bg[NORMAL] = shade (0.9, @bg_color) 502 | base[NORMAL] = shade (1.18, @bg_color) 503 | } 504 | 505 | style "xfdesktop-windowlist" { 506 | bg[NORMAL] = @base_color 507 | fg[INSENSITIVE] = shade (0.95, @base_color) 508 | text[INSENSITIVE] = shade (0.95, @base_color) 509 | } 510 | 511 | style "xfdesktop-icon-view" { 512 | XfdesktopIconView::label-alpha = 0 513 | XfdesktopIconView::selected-label-alpha = 60 514 | XfdesktopIconVIew::ellipsize-icon-labels = 1 515 | 516 | base[NORMAL] = @selected_bg_color 517 | base[SELECTED] = @selected_bg_color 518 | base[ACTIVE] = @selected_bg_color 519 | 520 | fg[NORMAL] = @selected_fg_color 521 | fg[SELECTED] = @selected_fg_color 522 | fg[ACTIVE] = @selected_fg_color 523 | 524 | engine "murrine" { 525 | textstyle = 5 526 | text_shade = 0.05 527 | } 528 | } 529 | 530 | style "xfwm-tabwin" { 531 | Xfwm4TabwinWidget::border-width = 0 532 | Xfwm4TabwinWidget::icon-size = 64 533 | 534 | bg[NORMAL] = @menu_bg_color 535 | fg[NORMAL] = @menu_fg_color 536 | 537 | engine "murrine" { 538 | focusstyle = 0 539 | } 540 | } 541 | 542 | style "xfsm-logout" { 543 | bg[NORMAL] = @menu_bg_color 544 | bg[ACTIVE] = @menu_bg_color 545 | bg[PRELIGHT] = shade (1.1, @menu_bg_color) 546 | bg[SELECTED] = shade (0.5, @menu_bg_color) 547 | bg[INSENSITIVE] = shade (1.3, @menu_bg_color) 548 | 549 | fg[NORMAL] = @menu_fg_color 550 | fg[PRELIGHT] = @menu_fg_color 551 | 552 | text[NORMAL] = @menu_fg_color 553 | 554 | engine "murrine" { 555 | } 556 | } 557 | 558 | style "xfsm-logout-button" { 559 | bg[NORMAL] = shade (1.2, @menu_bg_color) 560 | bg[PRELIGHT] = shade (1.4, @menu_bg_color) 561 | 562 | engine "murrine" { 563 | } 564 | } 565 | 566 | widget "*WnckPager*" style "workspace-switcher" 567 | 568 | widget "*Xfce*Panel*" style "murrine-panel" 569 | class "*Xfce*Panel*" style "murrine-panel" 570 | 571 | # Thunar Styles 572 | 573 | style "sidepane" { 574 | base[NORMAL] = @bg_color 575 | base[INSENSITIVE] = mix (0.4, shade (1.35, @selected_bg_color), shade (0.9, @base_color)) 576 | bg[NORMAL] = @bg_color 577 | text[NORMAL] = mix (0.9, @fg_color, @bg_color) 578 | } 579 | 580 | widget_class "*ThunarShortcutsView*" style "sidepane" 581 | widget_class "*ThunarTreeView*" style "sidepane" 582 | widget_class "*ThunarLocationEntry*" style "murrine-entry" 583 | 584 | # Gtk2 Open-File Dialog 585 | 586 | widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.GtkTreeView*" style "sidepane" 587 | widget_class "*GtkFileChooserWidget.GtkFileChooserDefault.GtkVBox.GtkHPaned.GtkVBox.GtkScrolledWindow.." style "murrine-treeview-header" 588 | 589 | # Google Chrome/Chromium Styles (requires 9.0.597 or newer) 590 | 591 | style "chromium-toolbar-button" { 592 | engine "murrine" { 593 | roundness = 4 594 | textstyle = 0 595 | } 596 | } 597 | 598 | style "chrome-gtk-frame" { 599 | ChromeGtkFrame::frame-color = @titlebar_bg_color 600 | ChromeGtkFrame::inactive-frame-color = @titlebar_bg_color 601 | 602 | ChromeGtkFrame::frame-gradient-size = 0 603 | ChromeGtkFrame::frame-gradient-color = @titlebar_bg_color 604 | 605 | ChromeGtkFrame::incognito-frame-color = @titlebar_bg_color 606 | ChromeGtkFrame::incognito-inactive-frame-color = @titlebar_bg_color 607 | 608 | ChromeGtkFrame::incognito-frame-gradient-size = 0 609 | ChromeGtkFrame::incognito-frame-gradient-color = @titlebar_bg_color 610 | 611 | ChromeGtkFrame::scrollbar-trough-color = @bg_color 612 | ChromeGtkFrame::scrollbar-slider-normal-color = mix (0.21, @fg_color, @bg_color) 613 | ChromeGtkFrame::scrollbar-slider-prelight-color = mix (0.31, @fg_color, @bg_color) 614 | } 615 | 616 | class "ChromeGtkFrame" style "chrome-gtk-frame" 617 | 618 | widget_class "*Chrom*Button*" style "chromium-toolbar-button" 619 | 620 | # General Styles 621 | 622 | class "GtkWidget" style "murrine-default" 623 | 624 | class "GtkFrame" style "murrine-wide" 625 | class "MetaFrames" style "metacity-frame" 626 | class "GtkWindow" style "metacity-frame" 627 | 628 | class "GtkSeparator" style "murrine-wide" 629 | class "GtkCalendar" style "murrine-wide" 630 | 631 | class "GtkSpinButton" style "murrine-spinbutton" 632 | 633 | class "GtkScale" style "murrine-scale" 634 | class "GtkVScale" style "murrine-vscale" 635 | class "GtkHScale" style "murrine-hscale" 636 | class "GtkScrollbar" style "murrine-scrollbar" 637 | class "GtkVScrollbar" style "murrine-vscrollbar" 638 | class "GtkHScrollbar" style "murrine-hscrollbar" 639 | 640 | class "GtkRadio*" style "murrine-radiocheck" 641 | class "GtkCheck*" style "murrine-radiocheck" 642 | 643 | class "GtkEntry" style "murrine-entry" 644 | 645 | widget_class "*" style "murrine-notebook" 646 | widget_class "**" style "murrine-notebook-bg" 647 | widget_class "**" style "murrine-notebook-bg" 648 | widget_class "**" style "murrine-notebook-bg" 649 | widget_class "*.GtkNotebook.*.GtkViewport" style "murrine-notebook" 650 | 651 | widget_class "*" style "murrine-button" 652 | widget_class "**" style "murrine-statusbar" 653 | widget_class "*" style "murrine-progressbar" 654 | widget_class "*" style "murrine-progressbar" 655 | 656 | widget_class "**" style "murrine-comboboxentry" 657 | widget_class "**" style "murrine-comboboxentry" 658 | 659 | widget_class "**" style "murrine-menu" 660 | widget_class "**" style "murrine-menu-item" 661 | widget_class "**" style "murrine-separator-menu-item" 662 | widget_class "*Menu*.*Sepa*" style "murrine-separator-menu-item" 663 | widget_class "**" style "murrine-menubar" 664 | widget_class "***" style "murrine-menubaritem" 665 | 666 | widget_class "*GtkToolButton*" style "murrine-toolbutton" 667 | widget_class "*GtkToggleToolButton*" style "murrine-toolbutton" 668 | widget_class "*GtkMenuToolButton*" style "murrine-toolbutton" 669 | widget_class "*GtkToolbar*Button" style "murrine-toolbutton" 670 | 671 | widget_class "*.." style "murrine-frame-title" 672 | 673 | widget_class "*.*" style "murrine-treeview" 674 | widget_class "*.." style "murrine-treeview-header" 675 | widget_class "*.." style "murrine-treeview-header" 676 | widget_class "*.." style "murrine-treeview-header" 677 | widget_class "*.." style "murrine-treeview-header" 678 | 679 | widget "gtk-tooltip*" style "murrine-tooltips" 680 | 681 | widget_class "**" style "murrine-overlay-scrollbar" 682 | 683 | # Workarounds and Non-Standard Styling 684 | 685 | style "text-is-fg-color-workaround" { 686 | text[NORMAL] = @text_color 687 | text[PRELIGHT] = @fg_color 688 | text[SELECTED] = @selected_fg_color 689 | text[ACTIVE] = @fg_color 690 | text[INSENSITIVE] = mix (0.5, @bg_color, @fg_color) 691 | } 692 | 693 | widget_class "*.." style "text-is-fg-color-workaround" 694 | 695 | style "fg-is-text-color-workaround" { 696 | fg[NORMAL] = @text_color 697 | fg[PRELIGHT] = @text_color 698 | fg[ACTIVE] = @selected_fg_color 699 | fg[SELECTED] = @selected_fg_color 700 | fg[INSENSITIVE] = darker (@fg_color) 701 | } 702 | 703 | widget_class "**" style "fg-is-text-color-workaround" 704 | widget_class "*" style "fg-is-text-color-workaround" 705 | widget_class "*" style "fg-is-text-color-workaround" 706 | 707 | style "murrine-evo-new-button-workaround" { 708 | engine "murrine" { 709 | toolbarstyle = 0 710 | } 711 | } 712 | 713 | widget_class "EShellWindow.GtkVBox.BonoboDock.BonoboDockBand.BonoboDockItem*" style "murrine-evo-new-button-workaround" 714 | 715 | style "inkscape-toolbar-fix" { 716 | engine "murrine" { 717 | gradient_shades = { 1.0, 1.0, 1.0, 1.0 } 718 | highlight_shade = 1.0 719 | } 720 | } 721 | 722 | #widget "*GtkHandleBox*" style "inkscape-toolbar-fix" 723 | #widget "*HandleBox*CommandsToolbar*" style "inkscape-toolbar-fix" 724 | #widget "*HandleBox*SnapToolbar*" style "inkscape-toolbar-fix" 725 | widget "*HandleBox*SelectToolbar*" style "inkscape-toolbar-fix" 726 | widget "*HandleBox*NodeToolbar*" style "inkscape-toolbar-fix" 727 | widget "*HandleBox*TweakToolbar*" style "inkscape-toolbar-fix" 728 | widget "*HandleBox*ZoomToolbar*" style "inkscape-toolbar-fix" 729 | widget "*HandleBox*StarToolbar*" style "inkscape-toolbar-fix" 730 | widget "*HandleBox*RectToolbar*" style "inkscape-toolbar-fix" 731 | widget "*HandleBox*3DBoxToolbar*" style "inkscape-toolbar-fix" 732 | widget "*HandleBox*ArcToolbar*" style "inkscape-toolbar-fix" 733 | widget "*HandleBox*SpiralToolbar*" style "inkscape-toolbar-fix" 734 | widget "*HandleBox*PencilToolbar*" style "inkscape-toolbar-fix" 735 | widget "*HandleBox*PenToolbar*" style "inkscape-toolbar-fix" 736 | widget "*HandleBox*CalligraphyToolbar*" style "inkscape-toolbar-fix" 737 | widget "*HandleBox*EraserToolbar*" style "inkscape-toolbar-fix" 738 | widget "*HandleBox*LPEToolToolbar*" style "inkscape-toolbar-fix" 739 | widget "*HandleBox*DropperToolbar*" style "inkscape-toolbar-fix" 740 | widget "*HandleBox*ConnectorToolbar*" style "inkscape-toolbar-fix" 741 | widget "*HandleBox*PaintbucketToolbar*" style "inkscape-toolbar-fix" 742 | 743 | # Performance Fixes 744 | 745 | style "performance-fix" { 746 | engine "murrine" { 747 | textstyle = 0 748 | } 749 | } 750 | 751 | widget_class "*gtkmm__GtkWindow*" style "performance-fix" # Inkscape 752 | widget_class "*GimpDisplayShell*" style "performance-fix" # Gimp 753 | widget_class "*GimpToolbox*" style "performance-fix" 754 | widget_class "*GimpMenuDock*" style "performance-fix" 755 | widget "*OOoFixed*" style "performance-fix" # Openoffice/Libreoffice 756 | widget_class "*MozContainer*" style "performance-fix" # Firefox (Not sure if this one does anything though.) 757 | 758 | widget_class "*XfceHeading*" style "xfce-header" 759 | widget_class "*XfceDesktop*" style "xfdesktop-windowlist" 760 | widget_class "*XfdesktopIconView*" style "xfdesktop-icon-view" 761 | widget "xfwm4-tabwin*" style "xfwm-tabwin" 762 | widget_class "*XfsmLogoutDialog*" style "xfsm-logout" 763 | widget_class "*XfsmLogoutDialog*GtkButton" style "xfsm-logout-button" 764 | -------------------------------------------------------------------------------- /gtk-3.0/assets/assets.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/assets.sketch -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-checked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-checked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-checked-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-checked-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-checked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-checked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-checked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-mixed-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-mixed-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-mixed-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-mixed-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-mixed-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-mixed-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-mixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-mixed.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-unchecked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-unchecked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-unchecked-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-unchecked-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-unchecked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-unchecked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/checkbox-unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/checkbox-unchecked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/grid-selection-checked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/grid-selection-checked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/grid-selection-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/grid-selection-checked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/grid-selection-unchecked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/grid-selection-unchecked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/grid-selection-unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/grid-selection-unchecked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-checked-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-checked-hover.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-checked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-checked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-checked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-mixed-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-mixed-hover.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-mixed-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-mixed-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-checkbox-mixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-checkbox-mixed.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-radio-checked-hover.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-radio-checked-hover.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-radio-checked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-radio-checked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/menuitem-radio-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/menuitem-radio-checked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-checked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-checked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-checked-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-checked-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-checked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-checked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-checked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-checked.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-mixed-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-mixed-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-mixed-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-mixed-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-mixed-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-mixed-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-mixed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-mixed.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-unchecked-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-unchecked-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-unchecked-insensitive-dark.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-unchecked-insensitive-dark.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-unchecked-insensitive.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-unchecked-insensitive.png -------------------------------------------------------------------------------- /gtk-3.0/assets/radio-unchecked.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ozonos/ozon-gtk-theme/014e7fb52a4ae777d704793ae7b7f75d4d65b4f5/gtk-3.0/assets/radio-unchecked.png -------------------------------------------------------------------------------- /gtk-3.0/gtk-dark.css: -------------------------------------------------------------------------------- 1 | @import url("resource:///org/ozonos/ozon/dist/gtk-dark.css"); 2 | -------------------------------------------------------------------------------- /gtk-3.0/gtk.css: -------------------------------------------------------------------------------- 1 | @import url("resource:///org/ozonos/ozon/dist/gtk.css"); 2 | -------------------------------------------------------------------------------- /gtk-3.0/gtk.gresource.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | assets/checkbox-mixed-dark.png 5 | assets/radio-checked-dark.png 6 | assets/checkbox-checked.png 7 | assets/checkbox-mixed-insensitive-dark.png 8 | assets/menuitem-checkbox-mixed.png 9 | assets/radio-mixed.png 10 | assets/menuitem-radio-checked.png 11 | assets/menuitem-radio-checked-insensitive.png 12 | assets/radio-unchecked-insensitive-dark.png 13 | assets/menuitem-checkbox-mixed-insensitive.png 14 | assets/menuitem-checkbox-checked-hover.png 15 | assets/grid-selection-checked.png 16 | assets/radio-checked-insensitive.png 17 | assets/checkbox-checked-insensitive.png 18 | assets/menuitem-checkbox-mixed-hover.png 19 | assets/radio-unchecked.png 20 | assets/radio-mixed-insensitive-dark.png 21 | assets/checkbox-checked-insensitive-dark.png 22 | assets/checkbox-unchecked-insensitive-dark.png 23 | assets/radio-unchecked-dark.png 24 | assets/radio-unchecked-insensitive.png 25 | assets/radio-checked.png 26 | assets/grid-selection-checked-dark.png 27 | assets/grid-selection-unchecked.png 28 | assets/menuitem-checkbox-checked.png 29 | assets/checkbox-mixed.png 30 | assets/grid-selection-unchecked-dark.png 31 | assets/checkbox-unchecked-dark.png 32 | assets/menuitem-checkbox-checked-insensitive.png 33 | assets/menuitem-radio-checked-hover.png 34 | assets/checkbox-unchecked-insensitive.png 35 | assets/checkbox-mixed-insensitive.png 36 | assets/checkbox-unchecked.png 37 | assets/radio-checked-insensitive-dark.png 38 | assets/radio-mixed-insensitive.png 39 | assets/checkbox-checked-dark.png 40 | assets/radio-mixed-dark.png 41 | dist/gtk.css 42 | dist/gtk-dark.css 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /gtk-3.0/scss/_colors.scss: -------------------------------------------------------------------------------- 1 | @import "global"; 2 | 3 | /* dark color scheme */ 4 | @define-color dark_bg_color #{"" + $dark_bg_color}; 5 | @define-color dark_fg_color #{"" + $dark_fg_color}; 6 | 7 | /* colormap actually used by the theme, to be overridden in other css files */ 8 | @define-color theme_bg_color #{"" + $bg_color}; 9 | @define-color theme_fg_color #{"" + $fg_color}; 10 | @define-color theme_base_color #{"" + $base_color}; 11 | @define-color theme_text_color #{"" + $text_color}; 12 | @define-color theme_selected_bg_color #{"" + $selected_bg_color}; 13 | @define-color theme_selected_fg_color #{"" + $selected_fg_color}; 14 | @define-color theme_tooltip_bg_color #{"" + $tooltip_bg_color}; 15 | @define-color theme_tooltip_fg_color #{"" + $tooltip_fg_color}; 16 | 17 | /* shadow effects */ 18 | @define-color light_shadow #{"" + $light_shadow}; 19 | @define-color dark_shadow #{"" + $dark_shadow}; 20 | 21 | /* misc colors used by gtk+ */ 22 | @define-color info_fg_color #{"" + $info_fg_color}; 23 | @define-color info_bg_color #{"" + $info_bg_color}; 24 | @define-color warning_fg_color #{"" + $warning_fg_color}; 25 | @define-color warning_bg_color #{"" + $warning_bg_color}; 26 | @define-color question_fg_color #{"" + $question_fg_color}; 27 | @define-color question_bg_color #{"" + $question_bg_color}; 28 | @define-color error_fg_color #{"" + $error_fg_color}; 29 | @define-color error_bg_color #{"" + $error_bg_color}; 30 | @define-color link_color #{"" + $link_color}; 31 | @define-color success_color #{"" + $success_color}; 32 | @define-color warning_color #{"" + $warning_color}; 33 | @define-color error_color #{"" + $error_color}; 34 | 35 | /* widget colors */ 36 | @define-color titlebar_bg_color @dark_bg_color; 37 | @define-color titlebar_fg_color @dark_fg_color; 38 | @define-color menubar_bg_color @dark_bg_color; 39 | @define-color menubar_fg_color @dark_fg_color; 40 | @define-color toolbar_bg_color @theme_bg_color; 41 | @define-color toolbar_fg_color @theme_fg_color; 42 | @define-color menu_bg_color @dark_bg_color; 43 | @define-color menu_fg_color @dark_fg_color; 44 | @define-color panel_bg_color @dark_bg_color; 45 | @define-color panel_fg_color @dark_fg_color; 46 | 47 | /* osd */ 48 | @define-color osd_bg #{"" + $osd_bg}; 49 | @define-color osd_fg #{"" + $osd_fg}; 50 | 51 | /* lightdm greeter colors */ 52 | @define-color lightdm_bg_color #{"" + $lightdm_bg_color}; 53 | @define-color lightdm_fg_color #{"" + $lightdm_fg_color}; 54 | 55 | /* window manager colors */ 56 | @define-color wm_bg #{"" + $wm_bg}; 57 | @define-color wm_border_focused #{"" + $wm_border_focused}; 58 | @define-color wm_border_unfocused #{"" + $wm_border_unfocused}; 59 | @define-color wm_title_focused #{"" + $wm_title_focused}; 60 | @define-color wm_title_unfocused #{"" + $wm_title_unfocused}; 61 | @define-color wm_icons_focused #{"" + $wm_icons_focused}; 62 | @define-color wm_icons_focused_prelight #{"" + $wm_icons_focused_prelight}; 63 | @define-color wm_icons_focused_pressed #{"" + $wm_icons_unfocused_pressed}; 64 | @define-color wm_icons_unfocused #{"" + $wm_icons_unfocused}; 65 | @define-color wm_icons_unfocused_prelight #{"" + $wm_icons_unfocused_prelight}; 66 | @define-color wm_icons_unfocused_pressed #{"" + $wm_icons_unfocused_pressed}; 67 | -------------------------------------------------------------------------------- /gtk-3.0/scss/_functions.scss: -------------------------------------------------------------------------------- 1 | $modules: () !default; 2 | 3 | @mixin exports($name) { 4 | @if (not index($modules, $name)) { 5 | $modules: append($modules, $name) !global; 6 | 7 | @content; 8 | } 9 | } 10 | 11 | @function alpha($color, $amount) { 12 | @if type-of($color) == "color" { 13 | @return fade-out($color, (1 - $amount)); 14 | } @else { 15 | @return unquote("alpha(#{$color},#{$amount})"); 16 | } 17 | } 18 | 19 | @function shade($color, $amount) { 20 | @if type-of($color) == "color" { 21 | @if ($amount > 1) { 22 | @return lighten($color, ($amount - 1) * lightness($color)) 23 | } @else { 24 | @return darken($color, (1 - $amount) * lightness($color)) 25 | } 26 | } @else { 27 | @return unquote("shade(#{$color},#{$amount})"); 28 | } 29 | } 30 | 31 | @function mix($color1, $color2, $amount) { 32 | @return unquote("mix(#{$color1},#{$color2},#{$amount})"); 33 | } 34 | 35 | @function border_normal($color) { 36 | @return shade($color, $contrast); 37 | } 38 | 39 | @function border_focus($color) { 40 | @return shade($color, ($contrast - .05)); 41 | } 42 | 43 | @function border_active($color) { 44 | @return shade($color, ($contrast - .1)); 45 | } 46 | 47 | @function border_insensitive($color) { 48 | @return shade($color, ($contrast + .05)); 49 | } 50 | 51 | @mixin linear-gradient($color, $direction: to bottom) { 52 | @if $gradient == 0 { 53 | background-color: $color; 54 | background-image: none; 55 | } @else { 56 | $amount: $gradient / 2; 57 | 58 | background-color: $color; 59 | background-image: linear-gradient($direction, 60 | shade($color, (1 + $amount)), 61 | shade($color, (1 - $amount)) 62 | ); 63 | } 64 | } 65 | 66 | @mixin border($color) { 67 | border-color: border_normal($color); 68 | 69 | &:focus, &:hover { border-color: border_focus($color); } 70 | 71 | &:active, &:active:hover, 72 | &:active:focus, &:active:hover:focus, 73 | &:checked, &:checked:hover, 74 | &:checked:focus, &:checked:hover:focus { border-color: border_active($color); } 75 | 76 | &:insensitive { border-color: border_insensitive($color); } 77 | 78 | &:active:insensitive, &:checked:insensitive { border-color: border_normal($color); } 79 | } 80 | -------------------------------------------------------------------------------- /gtk-3.0/scss/_global.scss: -------------------------------------------------------------------------------- 1 | @import "functions"; 2 | 3 | // default color scheme 4 | $bg_color: if($variant == "dark", #313736, #f6f6f6); 5 | $fg_color: if($variant == "dark", #ccc, #555); 6 | $base_color: if($variant == "dark", #292e2d, #fff); 7 | $text_color: if($variant == "dark", #eee, #313736); 8 | $selected_bg_color: #9575cd; 9 | $selected_bg_color_alt: #11aa89; 10 | $selected_fg_color: #fff; 11 | $tooltip_bg_color: #313736; 12 | $tooltip_fg_color: #eee; 13 | 14 | // dark colors 15 | $dark_bg_color: #313736; 16 | $dark_fg_color: #ccc; 17 | 18 | // shadows 19 | $dark_shadow: #000; 20 | $light_shadow: #fff; 21 | 22 | // misc colors used by gtk+ 23 | $info_fg_color: #fff; 24 | $info_bg_color: #03a9f4; 25 | $warning_fg_color: #fff; 26 | $warning_bg_color: #ef6c00; 27 | $question_fg_color: #fff; 28 | $question_bg_color: #673ab7; 29 | $error_fg_color: #fff; 30 | $error_bg_color: #f44336; 31 | $link_color: #3f51b5; 32 | $success_color: #4caf50; 33 | $warning_color: #ef6c00; 34 | $error_color: #f44336; 35 | 36 | $toolbar_bg_color: $bg_color; 37 | $toolbar_fg_color: $fg_color; 38 | 39 | $titlebar_bg_color: $bg_color; 40 | $titlebar_fg_color: $fg_color; 41 | 42 | $menu_bg_color: $base_color; 43 | $menu_fg_color: $text_color; 44 | 45 | $menubar_bg_color: $bg_color; 46 | $menubar_fg_color: $fg_color; 47 | 48 | $panel_bg_color: $dark_bg_color; 49 | $panel_fg_color: $dark_fg_color; 50 | 51 | $osd_bg: $dark_bg_color; 52 | $osd_fg: $dark_fg_color; 53 | 54 | $lightdm_bg_color: $dark_bg_color; 55 | $lightdm_fg_color: $dark_fg_color; 56 | 57 | $wm_bg: $titlebar_bg_color; 58 | $wm_border_focused: rgba(0,0,0,0.2); 59 | $wm_border_unfocused: rgba(0,0,0,0.1); 60 | $wm_title_focused: mix($titlebar_fg_color, $titlebar_bg_color, 0.1); 61 | $wm_title_unfocused: mix($titlebar_fg_color, $titlebar_bg_color, 0.4); 62 | $wm_icons_focused: mix($titlebar_fg_color, $titlebar_bg_color, 0.1); 63 | $wm_icons_focused_prelight: $selected_bg_color_alt; 64 | $wm_icons_focused_pressed: shade($selected_bg_color_alt, 0.8); 65 | $wm_icons_unfocused: mix($titlebar_fg_color, $titlebar_bg_color, 0.4); 66 | $wm_icons_unfocused_prelight: $selected_bg_color_alt; 67 | $wm_icons_unfocused_pressed: shade($selected_bg_color_alt, 0.8); 68 | 69 | // widget styles 70 | $roundness: 4px; 71 | $spacing: 5px; 72 | $gradient: 0.025; 73 | $contrast: .8; 74 | -------------------------------------------------------------------------------- /gtk-3.0/scss/_widgets.scss: -------------------------------------------------------------------------------- 1 | @import "functions"; 2 | @import "global"; 3 | @import "colors"; 4 | 5 | 6 | @import "widgets/base"; 7 | @import "widgets/button"; 8 | @import "widgets/entry"; 9 | @import "widgets/actionbar"; 10 | @import "widgets/calendar"; 11 | @import "widgets/choosers"; 12 | @import "widgets/grid"; 13 | @import "widgets/infobar"; 14 | @import "widgets/menu"; 15 | @import "widgets/misc"; 16 | @import "widgets/notebook"; 17 | @import "widgets/osd"; 18 | @import "widgets/overshoot"; 19 | @import "widgets/progress"; 20 | @import "widgets/scrollbar"; 21 | @import "widgets/sidebar"; 22 | @import "widgets/spinner"; 23 | @import "widgets/toggle"; 24 | @import "widgets/toolbar"; 25 | @import "widgets/view"; 26 | @import "widgets/window"; 27 | 28 | 29 | @import "apps/gedit"; 30 | @import "apps/nautilus"; 31 | @import "apps/nemo"; 32 | @import "apps/panel"; 33 | @import "apps/synaptic"; 34 | @import "apps/xfce"; 35 | @import "apps/unity"; 36 | @import "apps/lightdm"; 37 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_gedit.scss: -------------------------------------------------------------------------------- 1 | /********* 2 | ! Gedit * 3 | **********/ 4 | 5 | @include exports("gedit") { 6 | GeditWindow .pane-separator { 7 | border-width: 0 1px 0 0; 8 | border-style: solid; 9 | 10 | &, &:hover { 11 | border-color: shade($bg_color, ($contrast + .1)); 12 | background-color: $bg_color; 13 | } 14 | } 15 | 16 | .gedit-document-panel { 17 | background-color: $bg_color; 18 | color: mix($fg_color, $bg_color, 0.1); 19 | 20 | .list-row { 21 | padding: $spacing; 22 | 23 | .button { 24 | padding: 1px; 25 | border-radius: $roundness; 26 | border-style: solid; 27 | border-color: transparent; 28 | border-width: 1px; 29 | background-color: transparent; 30 | background-image: none; 31 | color: transparent; 32 | icon-shadow: none; 33 | } 34 | } 35 | 36 | .prelight-row .button { 37 | border-color: alpha(black, 0.1); 38 | color: alpha(white, 0.8); 39 | 40 | &:active { 41 | border-color: alpha(black, 0.2); 42 | background-color: alpha(black, 0.08); 43 | color: white; 44 | } 45 | } 46 | 47 | list-row, .prelight-row { 48 | .button:hover { 49 | border-color: alpha(black, 0.1); 50 | color: white; 51 | } 52 | } 53 | } 54 | 55 | .gedit-document-panel-group-row { 56 | &, &:hover { 57 | border-top: 1px solid shade($bg_color, ($contrast + .1)); 58 | background-color: $bg_color; 59 | } 60 | } 61 | 62 | .gedit-document-panel-document-row { 63 | &:hover { background-color: shade($bg_color, 1.05); } 64 | 65 | &:selected { 66 | &, &:hover { @extend %selected; } 67 | } 68 | } 69 | 70 | .gedit-document-panel-dragged-row { 71 | border: 1px solid alpha(black, 0.1); 72 | background-color: alpha(black, 0.5); 73 | color: white; 74 | } 75 | 76 | .gedit-document-panel-placeholder-row { 77 | border: none; 78 | background-color: alpha(black, 0.08); 79 | transition: all 200ms ease-in; 80 | } 81 | 82 | GeditStatusbar { border-top: 1px solid border_normal($bg_color); } 83 | 84 | GeditStatusbar GeditSmallButton, GeditStatusMenuButton { 85 | text-shadow: none; 86 | 87 | .button { 88 | border-style: solid; 89 | border-width: 0 1px; 90 | border-color: transparent; 91 | border-radius: 0; 92 | padding: 1px 6px 2px 4px; 93 | 94 | &:hover, &:active, &:active:hover { border-color: border_normal($bg_color); } 95 | 96 | &:active { 97 | background-color: shade($bg_color, 0.95); 98 | color: $fg_color; 99 | } 100 | } 101 | } 102 | 103 | GeditViewFrame .gedit-search-slider { 104 | padding: $spacing; 105 | border-radius: 0 0 $roundness $roundness; 106 | border-width: 0 1px 1px 1px; 107 | border-style: solid; 108 | border-color: border_normal($base_color); 109 | background-color: $base_color; 110 | 111 | .not-found { 112 | background-color: $error_bg_color; 113 | background-image: none; 114 | color: $error_fg_color; 115 | 116 | &:selected { @extend %selected; } 117 | } 118 | } 119 | 120 | GeditFileBrowserWidget .toolbar { 121 | padding: $spacing / 2; 122 | border-top: none; 123 | background-color: $bg_color; 124 | background-image: none; 125 | } 126 | 127 | .gedit-search-entry-occurrences-tag { 128 | margin: $spacing / 2; 129 | padding: $spacing / 2; 130 | color: mix($text_color, $base_color, 0.5); 131 | } 132 | } 133 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_lightdm.scss: -------------------------------------------------------------------------------- 1 | /*********************** 2 | ! LightDM GTK Greeter * 3 | ***********************/ 4 | 5 | @include exports("lightdm") { 6 | #panel_window { 7 | background-color: transparent; 8 | background-image: none; 9 | color: white; 10 | font: bold; 11 | text-shadow: 0 1px alpha(black, 0.5); 12 | icon-shadow: 0 1px alpha(black, 0.5); 13 | 14 | .menubar { 15 | &, > .menuitem { 16 | background-color: transparent; 17 | background-image: none; 18 | color: white; 19 | font: bold; 20 | text-shadow: 0 1px alpha(black, 0.5); 21 | icon-shadow: 0 1px alpha(black, 0.5); 22 | 23 | *:hover { color: white; } 24 | 25 | &:hover { 26 | border-style: none; 27 | background-color: alpha(white, 0.2); 28 | background-image: none; 29 | color: white; 30 | } 31 | 32 | &:insensitive { color: alpha(white, 0.7); } 33 | 34 | .menu { 35 | border-radius: 1px; 36 | 37 | .menuitem { 38 | font: normal; 39 | text-shadow: none; 40 | } 41 | } 42 | } 43 | } 44 | } 45 | 46 | #content_frame { padding-bottom: 14px; } 47 | 48 | #login_window, #shutdown_dialog, #restart_dialog { 49 | border-style: none; 50 | border-radius: $roundness; 51 | background-color: $lightdm_bg_color; 52 | color: $lightdm_fg_color; 53 | 54 | /* draw border using box-shadow */ 55 | box-shadow: inset 1px 0 mix(shade($lightdm_bg_color, 0.7), $lightdm_fg_color, 0.21), 56 | inset -1px 0 mix(shade($lightdm_bg_color, 0.7), $lightdm_fg_color, 0.21), 57 | inset 0 1px mix(shade($lightdm_bg_color, 0.7), $lightdm_fg_color, 0.21), 58 | inset 0 -1px mix(shade($lightdm_bg_color, 0.7), $lightdm_fg_color, 0.21); 59 | 60 | .button { 61 | padding: 3px 15px; 62 | border-width: 1px; 63 | border-radius: $roundness; 64 | border-style: solid; 65 | border-color: shade($lightdm_bg_color, 0.8); 66 | background-color: shade($lightdm_bg_color, 1.08); 67 | background-image: none; 68 | color: $lightdm_fg_color; 69 | transition: all 150ms ease-out; 70 | 71 | &.default, &:focus, &:active:focus { 72 | border-color: shade($selected_bg_color, 0.8); 73 | background-color: shade($selected_bg_color, 1.08); 74 | background-image: none; 75 | color: $selected_fg_color; 76 | 77 | &:hover { 78 | border-color: shade($selected_bg_color, 0.7); 79 | background-color: $selected_bg_color; 80 | } 81 | } 82 | } 83 | } 84 | 85 | 86 | #login_window { 87 | .menu { border-radius: 1px; } 88 | 89 | GtkComboBox .button { 90 | &, &:hover, &:active, &:active:hover, 91 | &:focus, &:hover:focus, &:active:focus, &:active:hover:focus { 92 | padding: 0; 93 | background: none; 94 | border-style: none; 95 | box-shadow: none; 96 | } 97 | } 98 | 99 | .entry { 100 | padding: 3px 5px; 101 | border-width: 1px; 102 | border-style: solid; 103 | border-color: shade($lightdm_bg_color, 0.8); 104 | border-radius: $roundness; 105 | background-color: shade($lightdm_bg_color, 0.9); 106 | background-image: none; 107 | color: $lightdm_fg_color; 108 | box-shadow: none; 109 | transition: all 150ms ease-out; 110 | 111 | &:focus, &:hover { 112 | border-color: shade($lightdm_bg_color, 0.7); 113 | 114 | box-shadow: inset 1px 0 alpha($dark_shadow, 0.10), 115 | inset 0 1px alpha($dark_shadow, 0.12), 116 | inset -1px 0 alpha($dark_shadow, 0.10), 117 | inset 0 -1px alpha($dark_shadow, 0.05); 118 | } 119 | } 120 | } 121 | 122 | #user_combobox { 123 | color: $lightdm_fg_color; 124 | font: 18px; 125 | 126 | .menu { font: normal; } 127 | 128 | .arrow { color: mix($lightdm_fg_color, $lightdm_bg_color, 0.5); } 129 | } 130 | 131 | #user_image { 132 | padding: 3px; 133 | border-radius: $roundness; 134 | 135 | /* draw border using box-shadow */ 136 | box-shadow: inset 1px 0 shade($lightdm_bg_color, 0.7), 137 | inset -1px 0 shade($lightdm_bg_color, 0.7), 138 | inset 0 1px shade($lightdm_bg_color, 0.7), 139 | inset 0 -1px shade($lightdm_bg_color, 0.7); 140 | } 141 | 142 | #user_image_border { 143 | border-radius: $roundness; 144 | background-color: shade($lightdm_bg_color, 0.9); 145 | background-image: none; 146 | box-shadow: inset 1px 0 alpha($dark_shadow, 0.07), 147 | inset 0 1px alpha($dark_shadow, 0.08), 148 | inset -1px 0 alpha($dark_shadow, 0.07), 149 | inset 0 -1px alpha($dark_shadow, 0.05); 150 | } 151 | 152 | #buttonbox_frame { 153 | padding-top: 10px; 154 | padding-bottom: 0; 155 | border-style: none; 156 | border-bottom-left-radius: $roundness; 157 | border-bottom-right-radius: $roundness; 158 | background-color: transparent; 159 | background-image: none; 160 | box-shadow: none; 161 | } 162 | 163 | 164 | 165 | /* shutdown button */ 166 | #shutdown_button { 167 | border-color: shade($error_bg_color, 0.8); 168 | background-color: shade($error_bg_color, 1.08); 169 | background-image: none; 170 | color: $error_fg_color; 171 | 172 | &:hover, &:active, &:active:hover { 173 | border-color: shade($error_bg_color, 0.7); 174 | background-color: $error_bg_color; 175 | } 176 | } 177 | 178 | /* restart button */ 179 | #restart_button { 180 | border-color: shade($warning_bg_color, 0.8); 181 | background-color: shade($warning_bg_color, 1.08); 182 | background-image: none; 183 | color: $warning_fg_color; 184 | 185 | &:hover, &:active, &:active:hover { 186 | border-color: shade($warning_bg_color, 0.7); 187 | background-color: $warning_bg_color; 188 | } 189 | } 190 | 191 | /* password warning */ 192 | #greeter_infobar { font: bold; } 193 | } 194 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_nautilus.scss: -------------------------------------------------------------------------------- 1 | /************ 2 | ! Nautilus * 3 | *************/ 4 | 5 | @include exports("nautilus") { 6 | .nautilus-desktop.nautilus-canvas-item { 7 | color: white; 8 | text-shadow: 1px 1px black; 9 | 10 | &:active { color: $fg_color; } 11 | 12 | &:selected { color: $selected_fg_color; } 13 | 14 | &:active, &:prelight, &:selected { text-shadow: none; } 15 | } 16 | 17 | NautilusWindow { 18 | .toolbar { 19 | border-width: 0 0 1px; 20 | border-style: solid; 21 | border-color: border_normal($toolbar_bg_color); 22 | } 23 | 24 | .sidebar .frame { border: none; } 25 | 26 | GtkPaned { 27 | border-width: 0 1px 0 0; 28 | border-style: solid; 29 | 30 | &, &:hover { 31 | border-color: shade($bg_color, ($contrast + .1)); 32 | background-color: $bg_color; 33 | } 34 | } 35 | } 36 | 37 | NautilusNotebook { 38 | &.notebook { 39 | border-right-width: 0; 40 | border-left-width: 0; 41 | border-bottom-width: 0; 42 | } 43 | 44 | .frame { border: none; } 45 | } 46 | 47 | NautilusQueryEditor { 48 | .toolbar { 49 | padding-top: $spacing - 1px; 50 | padding-bottom: $spacing - 2px; 51 | border-width: 1px 0 0 0; 52 | border-style: solid; 53 | border-color: $toolbar_bg_color; 54 | background-color: shade($toolbar_bg_color, 0.9); 55 | 56 | &:nth-child(2) { border-color: border_normal($toolbar_bg_color); } 57 | 58 | &.search-bar { 59 | border-top-width: 0; 60 | border-bottom-width: 0; 61 | } 62 | 63 | &, &.search-bar { 64 | border-top-width: 0; 65 | border-bottom-width: 0; 66 | 67 | &:last-child, &:only-child { 68 | border-bottom-width: 1px; 69 | border-bottom-color: border_normal($toolbar_bg_color); 70 | } 71 | } 72 | 73 | } 74 | } 75 | } 76 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_nemo.scss: -------------------------------------------------------------------------------- 1 | /******** 2 | ! Nemo * 3 | *********/ 4 | 5 | @include exports("nemo") { 6 | .nemo-desktop.nemo-canvas-item { 7 | color: white; 8 | text-shadow: 1px 1px black; 9 | 10 | &:active { color: $fg_color; } 11 | 12 | &:selected { color: $selected_fg_color; } 13 | 14 | &:active, &:prelight, &:selected { text-shadow: none; } 15 | } 16 | 17 | NemoPathbarButton { 18 | @include button($toolbar_bg_color, $toolbar_fg_color); 19 | 20 | -NemoPathbarButton-border-radius: $roundness; 21 | } 22 | 23 | NemoPlacesTreeView { 24 | -NemoPlacesTreeView-disk-full-bg-color: shade($toolbar_bg_color, 0.8); 25 | -NemoPlacesTreeView-disk-full-fg-color: $selected_bg_color; 26 | -NemoPlacesTreeView-disk-full-bar-width: 1px; 27 | -NemoPlacesTreeView-disk-full-bar-radius: 1px; 28 | -NemoPlacesTreeView-disk-full-bottom-padding: 2px; 29 | -NemoPlacesTreeView-disk-full-max-length: 70px; 30 | 31 | &:selected { 32 | -NemoPlacesTreeView-disk-full-bg-color: $selected_fg_color; 33 | -NemoPlacesTreeView-disk-full-fg-color: shade($selected_bg_color, 1.2); 34 | } 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_panel.scss: -------------------------------------------------------------------------------- 1 | /*********************** 2 | ! Fallback mode panel * 3 | ************************/ 4 | 5 | @include exports("panel") { 6 | %panel { 7 | @include linear-gradient($panel_bg_color); 8 | 9 | color: $panel_fg_color; 10 | } 11 | 12 | %panelbutton { 13 | border-width: 0 1px; 14 | border-radius: 0; 15 | border-color: transparent; 16 | background-color: transparent; 17 | background-image: none; 18 | color: $panel_fg_color; 19 | 20 | &:hover, &:prelight { 21 | @include linear-gradient(mix($panel_bg_color, $panel_fg_color, 0.11)); 22 | 23 | border-color: mix($panel_bg_color, $panel_fg_color, 0.11); 24 | color: shade($panel_fg_color, 1.08); 25 | } 26 | 27 | &:active, &:checked { 28 | @include linear-gradient(mix($panel_bg_color, $panel_fg_color, 0.21), to top); 29 | 30 | border-color: mix($panel_bg_color, $panel_fg_color, 0.21); 31 | color: shade($panel_fg_color, 1.08); 32 | 33 | &:prelight { 34 | @include linear-gradient(mix($panel_bg_color, $panel_fg_color, 0.31), to top); 35 | 36 | border-color: mix($panel_bg_color, $panel_fg_color, 0.31); 37 | } 38 | } 39 | } 40 | 41 | PanelWidget, PanelApplet, PanelToplevel { 42 | @extend %panel; 43 | 44 | padding: 0; 45 | } 46 | 47 | PanelApplet { 48 | border: none; 49 | 50 | .button { 51 | @extend %panelbutton; 52 | 53 | -GtkButton-inner-border: 2; 54 | } 55 | } 56 | 57 | PanelSeparator { 58 | @extend %panel; 59 | 60 | border: none; 61 | } 62 | 63 | PanelApplet > GtkMenuBar.menubar, PanelMenuBar.menubar, .gnome-panel-menu-bar { 64 | &.menuitem { 65 | @extend %panel; 66 | 67 | border: none; 68 | 69 | -PanelMenuBar-icon-visible: true; 70 | } 71 | } 72 | 73 | PanelAppletFrame { 74 | @extend %panel; 75 | 76 | border: none; 77 | } 78 | 79 | WnckPager, WnckTasklist { @extend %panel; } 80 | } 81 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_synaptic.scss: -------------------------------------------------------------------------------- 1 | /************ 2 | ! Synaptic * 3 | *************/ 4 | 5 | @include exports("synaptic") { 6 | GtkWindow > GtkVBox > .dock { 7 | &, > GtkHBox > GtkToolbar { 8 | @include linear-gradient($toolbar-bg-color); 9 | 10 | padding: $spacing; 11 | border: none; 12 | color: $toolbar_fg_color; 13 | } 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_unity.scss: -------------------------------------------------------------------------------- 1 | @import "panel"; 2 | 3 | /**************** 4 | ! Unity styles * 5 | *****************/ 6 | 7 | @include exports("unity") { 8 | UnityDecoration { 9 | -UnityDecoration-extents: 28px 1px 1px 1px; 10 | -UnityDecoration-input-extents: 10px; 11 | 12 | -UnityDecoration-shadow-offset-x: 1px; 13 | -UnityDecoration-shadow-offset-y: 1px; 14 | -UnityDecoration-active-shadow-color: rgba(0,0,0,0.7); 15 | -UnityDecoration-active-shadow-radius: 8px; 16 | -UnityDecoration-inactive-shadow-color: rgba(0,0,0,0.5); 17 | -UnityDecoration-inactive-shadow-radius: 5px; 18 | 19 | -UnityDecoration-glow-size: 10px; 20 | -UnityDecoration-glow-color: $selected_bg_color; 21 | 22 | -UnityDecoration-title-indent: 10px; 23 | -UnityDecoration-title-fade: 35px; 24 | -UnityDecoration-title-alignment: 0.0; 25 | 26 | 27 | &.top { 28 | border: 1px solid $wm_border_focused; 29 | border-bottom: none; 30 | border-radius: 2px 2px 0 0; 31 | padding: 1px ($spacing * 2) 0 ($spacing * 2); 32 | background-color: $titlebar_bg_color; 33 | color: mix($titlebar_fg_color, $titlebar_bg_color, 0.1); 34 | text-shadow: none; 35 | 36 | &:backdrop { 37 | border: 1px solid $wm_border_unfocused; 38 | color: mix($titlebar_fg_color, $titlebar_bg_color, 0.4); 39 | } 40 | } 41 | 42 | &.left, &.right, &.bottom { 43 | background-color: $wm_border_focused; 44 | 45 | &:backdrop { background-color: $wm_border_unfocused; } 46 | } 47 | } 48 | 49 | UnityPanelWidget, .unity-panel { 50 | @extend %panel; 51 | 52 | border: none; 53 | } 54 | 55 | .unity-panel { 56 | &.menuitem, .menuitem { 57 | border-width: 0 1px; 58 | color: $panel_fg_color; 59 | 60 | &:hover, *:hover { 61 | border-color: mix($panel_bg_color, $panel_fg_color, 0.21); 62 | background-color: mix($panel_bg_color, $panel_fg_color, 0.21); 63 | background-image: none; 64 | color: shade($panel_fg_color, 1.08); 65 | } 66 | } 67 | } 68 | 69 | SheetStyleDialog.unity-force-quit { background-color: $bg_color; } 70 | } 71 | -------------------------------------------------------------------------------- /gtk-3.0/scss/apps/_xfce.scss: -------------------------------------------------------------------------------- 1 | @import "panel"; 2 | 3 | /*************** 4 | ! Xfce styles * 5 | ****************/ 6 | 7 | @include exports("xfce") { 8 | XfceHeading { 9 | margin: 0; 10 | padding: 0; 11 | border: none; 12 | background-image: none; 13 | background-color: $base_color; 14 | color: $text_color; 15 | } 16 | 17 | .xfce4-panel { 18 | @extend %panel; 19 | 20 | font: normal; 21 | 22 | .button { @extend %panelbutton; } 23 | 24 | .menu { -gtk-image-effect: none; } 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /gtk-3.0/scss/gtk-dark.scss: -------------------------------------------------------------------------------- 1 | $variant: "dark"; 2 | 3 | @import "widgets"; 4 | -------------------------------------------------------------------------------- /gtk-3.0/scss/gtk.scss: -------------------------------------------------------------------------------- 1 | $variant: "light"; 2 | 3 | @import "widgets"; 4 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_actionbar.scss: -------------------------------------------------------------------------------- 1 | @import "button"; 2 | @import "toolbar"; 3 | 4 | /************** 5 | ! Action-bar * 6 | ***************/ 7 | 8 | @include exports("actionbar") { 9 | .action-bar { 10 | @include linear-gradient($bg_color); 11 | 12 | padding: $spacing; 13 | border-width: 1px 0 0 0; 14 | border-style: solid; 15 | border-color: border_normal($bg_color); 16 | color: $fg_color; 17 | 18 | .button { 19 | &.text-button { padding: $spacing - 1px; } 20 | 21 | &.image-button { padding: $spacing + 1px; } 22 | } 23 | 24 | .title { 25 | font: bold; 26 | padding: 0 ($spacing * 2); 27 | } 28 | 29 | .subtitle { 30 | font: smaller; 31 | padding: 0 ($spacing * 2); 32 | } 33 | } 34 | } 35 | 36 | 37 | /*************** 38 | ! Search bars * 39 | ****************/ 40 | 41 | @include exports("searchbar") { 42 | .search-bar { 43 | @include linear-gradient(shade($bg_color, 0.98)); 44 | 45 | border-width: 0 0 1px 0; 46 | border-style: solid; 47 | border-color: border_normal($bg_color); 48 | color: $fg_color; 49 | 50 | .button.close-button { padding: $spacing; } 51 | } 52 | } 53 | 54 | 55 | /****************** 56 | ! Action buttons * 57 | *******************/ 58 | 59 | @include exports("actionbuttons") { 60 | $types: ( 61 | suggested: $success_color, 62 | destructive: $error-color 63 | ); 64 | 65 | @each $type, $color in $types { 66 | .#{$type}-action.button { 67 | @include button($color, $selected_fg_color); 68 | } 69 | } 70 | } 71 | 72 | 73 | /****************** 74 | * selection mode * 75 | ******************/ 76 | 77 | @include exports("selectionmode") { 78 | .selection-mode { 79 | &.header-bar, &.toolbar { 80 | @include toolbar($selected_bg_color, $selected_fg_color); 81 | 82 | .button { 83 | @include button($selected_bg_color, $selected_fg_color); 84 | 85 | &.suggested-action { @extend .suggested-action.button; } 86 | } 87 | 88 | .selection-menu.button { 89 | border: none; 90 | background-color: transparent; 91 | background-image: none; 92 | color: shade($selected_bg_color, $contrast); 93 | 94 | &:hover { color: shade($selected_bg_color, ($contrast - .1)); } 95 | 96 | &:active { color: shade($selected_bg_color, ($contrast - .05)); } 97 | } 98 | 99 | .dim-label, { 100 | &, .selection-menu.button & { color: shade($selected_bg_color, ($contrast - .1)); } 101 | } 102 | } 103 | 104 | &.toolbar { padding: $spacing; } 105 | } 106 | } 107 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_base.scss: -------------------------------------------------------------------------------- 1 | /************** 2 | ! GTK settings 3 | ***************/ 4 | 5 | * { 6 | -GtkArrow-arrow-scaling: 0.5; 7 | -GtkExpander-expander-size: 8; 8 | -GtkStatusbar-shadow-type: none; 9 | -GtkToolItemGroup-expander-size: 8; 10 | -GtkWindow-resize-grip-height: 0; 11 | -GtkWindow-resize-grip-width: 0; 12 | -WnckTasklist-fade-overlay-rect: 0; 13 | 14 | outline-color: alpha($selected_bg_color, 0.5); 15 | outline-style: dashed; 16 | outline-width: 1px; 17 | outline-offset: -1px; 18 | outline-radius: $roundness; 19 | } 20 | 21 | 22 | /************* 23 | ! Base states 24 | *************/ 25 | 26 | %selected { 27 | &, &:focus { 28 | background-color: $selected_bg_color; 29 | color: $selected_fg_color; 30 | } 31 | } 32 | 33 | * { 34 | &:selected { @extend %selected; } 35 | 36 | &:insensitive, 37 | &:insensitive:insensitive { color: mix($fg_color, $bg_color, 0.50); } 38 | 39 | &:insensitive { -gtk-image-effect: dim; } 40 | 41 | &:hover { -gtk-image-effect: highlight; } 42 | 43 | /* hyperlinks */ 44 | -GtkHTML-link-color: $link_color; 45 | -GtkIMHtml-hyperlink-color: $link_color; 46 | -GtkWidget-link-color: $link_color; 47 | -GtkWidget-visited-link-color: $link_color; 48 | 49 | &:link, &:visited { color: $link_color; } 50 | } 51 | 52 | .background { 53 | background-color: $bg_color; 54 | color: $fg_color; 55 | 56 | &:backdrop { 57 | text-shadow: none; 58 | icon-shadow: none; 59 | } 60 | 61 | &.csd { background-color: $bg_color; } 62 | } 63 | 64 | .gtkstyle-fallback { 65 | background-color: alpha($bg_color, .5); 66 | color: $fg_color; 67 | 68 | &:prelight { 69 | background-color: shade($bg_color, 1.1); 70 | color: $fg_color; 71 | } 72 | 73 | &:active { 74 | background-color: shade($bg_color, 0.9); 75 | color: $fg_color; 76 | } 77 | 78 | &:insensitive { 79 | background-color: shade(shade($bg_color, 0.95), 1.05); 80 | color: mix($fg_color, $bg_color, 0.50); 81 | } 82 | 83 | &:selected { @extend %selected; } 84 | } 85 | 86 | GtkImage, GtkLabel, GtkBox, GtkGrid { 87 | &, &:insensitive { background-color: transparent; } 88 | } 89 | 90 | GtkLabel { 91 | &.separator { 92 | color: $fg_color; 93 | 94 | @extend .dim-label; 95 | } 96 | 97 | &:selected { @extend %selected; } 98 | 99 | &:insensitive { color: mix($fg_color, $bg_color, 0.50); } 100 | } 101 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_button.scss: -------------------------------------------------------------------------------- 1 | /********* 2 | ! Buttons 3 | **********/ 4 | 5 | @include exports("button_extends") { 6 | %button { 7 | padding: $spacing ($spacing + 2px); 8 | border-width: 1px; 9 | border-style: solid; 10 | border-radius: $roundness; 11 | transition: 150ms ease; 12 | outline-color: transparent; 13 | 14 | -GtkWidget-focus-padding: 1; 15 | -GtkWidget-focus-line-width: 0; 16 | 17 | &:focus, &:hover, &:active { transition: none; } 18 | } 19 | 20 | %linked_middle { 21 | border-radius: 0; 22 | border-left-style: none; 23 | border-right-style: solid; 24 | 25 | &:dir(rtl) { 26 | border-radius: 0; // needed when including %linked_middle:dir(rtl) 27 | border-right-style: none; 28 | border-left-style: solid 29 | } 30 | } 31 | 32 | %linked_button { 33 | border-width: 1px; 34 | border-style: solid; 35 | border-radius: 0; 36 | border-right-style: none; 37 | border-left-style: none; 38 | 39 | &:first-child { 40 | border-width: 1px; 41 | border-radius: $roundness; 42 | border-left-style: solid; 43 | border-right-style: none; 44 | border-top-right-radius: 0; 45 | border-bottom-right-radius: 0; 46 | 47 | &:dir(rtl) { 48 | border-left-style: none; 49 | border-right-style: solid; 50 | } 51 | } 52 | 53 | &:last-child { 54 | border-width: 1px; 55 | border-radius: $roundness; 56 | border-left-style: none; 57 | border-right-style: solid; 58 | border-top-left-radius: 0; 59 | border-bottom-left-radius: 0; 60 | 61 | &:dir(rtl) { 62 | border-left-style: solid; 63 | border-right-style: none; 64 | } 65 | } 66 | 67 | &:only-child, &:first-child:only-child { 68 | border-width: 1px; 69 | border-style: solid; 70 | border-radius: $roundness; 71 | } 72 | } 73 | } 74 | 75 | @mixin linked_button($bg) { 76 | $border_strength: if(lightness($bg) > 50, 0, .1); 77 | $shadow_strength: if(lightness($bg) > 50, 0, .1); 78 | 79 | @extend %linked_button; 80 | 81 | box-shadow: inset -1px 0 border_normal(rgba(0,0,0,.12 + $border_strength)), 82 | 0 1px 2px -1px alpha($dark_shadow, .12 + $shadow_strength); 83 | 84 | &:focus, &:hover { 85 | box-shadow: inset -1px 0 border_focus(rgba(0,0,0,.12 + $border_strength)), 86 | 0 1px 2px -1px alpha($dark_shadow, .32 + $shadow_strength); 87 | } 88 | 89 | &:active, &:active:hover, 90 | &:active:focus, &:active:hover:focus, 91 | &:checked, &:checked:hover, 92 | &:checked:focus, &:checked:hover:focus { 93 | box-shadow: inset -1px 0 border_active(rgba(0,0,0,.12 + $border_strength)), 94 | inset 0 1px alpha($dark_shadow, .07), 95 | inset 0 -1px alpha($dark_shadow, .05); 96 | } 97 | 98 | &:insensitive { box-shadow: inset -1px 0 shade($bg, .8); } 99 | 100 | &:last-child, &:only-child { box-shadow: 0 1px 2px -1px alpha($dark_shadow, .12 + $shadow_strength); } 101 | 102 | &:last-child:hover, &:only-child:hover { box-shadow: 0 1px 2px -1px alpha($dark_shadow, .32 + $shadow_strength); } 103 | 104 | &:insensitive:last-child, &:insensitive:only-child, 105 | &:active:insensitive:last-child, &:active:insensitive:only-child, 106 | &:checked:insensitive:last-child, &:checked:insensitive:only-child { box-shadow: none; } 107 | 108 | &:active:last-child, &:active:last-child:focus, &:active:last-child:hover, &:active:last-child:hover:focus, 109 | &:checked:last-child, &:checked:last-child:focus, &:checked:last-child:hover, &:checked:last-child:hover:focus, { 110 | box-shadow: inset 0 1px alpha($dark_shadow, .07), 111 | inset -1px 0 alpha($dark_shadow, .06); 112 | } 113 | 114 | &:active:only-child, &:active:only-child:focus, &:active:only-child:hover, &:active:only-child:hover:focus, 115 | &:checked:only-child, &:checked:only-child:focus, &:checked:only-child:hover, &:checked:only-child:hover:focus { 116 | box-shadow: inset 1px 0 alpha($dark_shadow, .06), 117 | inset 0 1px alpha($dark_shadow, .07), 118 | inset -1px 0 alpha($dark_shadow, .06); 119 | } 120 | } 121 | 122 | @mixin button($bg, $fg) { 123 | $border_strength: if(lightness($bg) > 50, 0, .1); 124 | $shadow_strength: if(lightness($bg) > 50, 0, .1); 125 | 126 | @extend %button; 127 | @include linear-gradient(shade($bg, 1.2)); 128 | @include border(rgba(0,0,0,.12 + $border_strength)); 129 | 130 | color: $fg; 131 | box-shadow: 0 1px 2px -1px alpha($dark_shadow, .12 + $shadow_strength); 132 | 133 | &.flat { 134 | border-color: alpha($bg, 1); 135 | background-color: alpha($bg, 1); 136 | background-image: none; 137 | box-shadow: none; 138 | } 139 | 140 | &, &.flat { 141 | &:focus, &:hover { 142 | @include linear-gradient(shade($bg, 1.2)); 143 | @include border(rgba(0,0,0,.2 + $border_strength)); 144 | 145 | box-shadow: 0 1px 2px -1px alpha($dark_shadow, .32 + $shadow_strength); 146 | } 147 | 148 | &:active, &:checked { 149 | @include linear-gradient(shade($bg, .9), to top); 150 | 151 | color: $fg; 152 | box-shadow: inset 1px 0 alpha($dark_shadow, .06), 153 | inset 0 1px alpha($dark_shadow, .07), 154 | inset -1px 0 alpha($dark_shadow, .06), 155 | inset 0 -1px alpha($dark_shadow, .05); 156 | } 157 | 158 | &:focus, &:hover, 159 | &:active:focus, &:active:hover, 160 | &:checked:focus, &:checked:hover { 161 | @if type-of($bg) == color and hue($bg) == 0deg { 162 | color: $selected_bg_color_alt; 163 | } @else { 164 | color: $fg; 165 | } 166 | } 167 | 168 | &:active:insensitive, &:checked:insensitive { 169 | @include linear-gradient(shade($bg, .8)); 170 | 171 | color: $fg; 172 | box-shadow: none; 173 | } 174 | 175 | &:insensitive:insensitive { 176 | @if (lightness($bg) > 50) { 177 | @include linear-gradient(shade($bg, .95)); 178 | } @else { 179 | @include linear-gradient(alpha($bg, .3)); 180 | } 181 | 182 | color: mix($bg, $fg, .5); 183 | box-shadow: none; 184 | } 185 | } 186 | 187 | &.separator, .separator { 188 | border: 1px solid currentColor; 189 | color: shade($bg, ($contrast + .1)); 190 | 191 | &:insensitive { color: shade($bg, .85); } 192 | } 193 | } 194 | 195 | @include exports("button") { 196 | * { 197 | -GtkButton-child-displacement-x: 0; 198 | -GtkButton-child-displacement-y: 0; 199 | -GtkButton-default-border: 0; 200 | -GtkButton-image-spacing: 0; 201 | -GtkButton-inner-border: 1; 202 | -GtkButton-interior-focus: true; 203 | -GtkButtonBox-child-min-height: 24; 204 | -GtkButtonBox-child-internal-pad-y: 1; 205 | -GtkToolButton-icon-spacing: 6; 206 | } 207 | 208 | %close_button { 209 | border: 1px solid transparent; 210 | background-color: transparent; 211 | background-image: none; 212 | box-shadow: none; 213 | 214 | &:focus, &:hover { 215 | border: 1px solid alpha(black, .3); 216 | background-color: alpha(white, .2); 217 | background-image: none; 218 | box-shadow: none; 219 | } 220 | 221 | &:active, &:checked, &:active:hover, &:checked:hover { 222 | border: 1px solid alpha(black, .3); 223 | background-color: alpha(black, .1); 224 | background-image: none; 225 | box-shadow: none; 226 | } 227 | } 228 | 229 | .button { 230 | @include button($bg_color, $fg_color); 231 | 232 | &.default { @include button($selected_bg_color, $selected_fg_color); } 233 | 234 | &.linked, .linked & { @include linked_button(shade($bg_color, 1.2)); } 235 | 236 | .spinbutton & { 237 | color: mix($text_color, $base_color, .4); 238 | padding: $spacing ($spacing * 2); 239 | border: none; 240 | border-radius: 0; 241 | border-style: none; 242 | background-color: transparent; 243 | background-image: none; 244 | box-shadow: inset 1px 0 shade($base_color, .9); 245 | 246 | &:insensitive { 247 | color: mix($text_color, $base_color, .7); 248 | box-shadow: inset 1px 0 shade($base_color, .85); 249 | } 250 | 251 | &:active, &:checked, &:hover { color: $text_color; } 252 | 253 | &:first-child { 254 | border-radius: $roundness 0 0 $roundness; 255 | box-shadow: none; 256 | } 257 | 258 | &:last-child { border-radius: 0 $roundness $roundness 0; } 259 | 260 | &:dir(rtl) { box-shadow: inset -1px 0 shade($base_color, .9); } 261 | } 262 | 263 | .spinbutton.vertical & { 264 | border: 1px solid shade($bg_color, .8); 265 | border-radius: $roundness; 266 | background-color: shade($bg_color, 1.08); 267 | background-image: none; 268 | color: $fg_color; 269 | box-shadow: none; 270 | 271 | &:hover { 272 | border-color: shade($bg_color, .7); 273 | background-color: shade($bg_color, 1.1); 274 | background-image: none; 275 | } 276 | 277 | &:active, &:checked { 278 | border-color: shade($bg_color, .8); 279 | background-color: shade($bg_color, .95); 280 | background-image: none; 281 | } 282 | 283 | &:active:hover, &:checked:hover { 284 | border-color: shade($bg_color, .7); 285 | } 286 | 287 | &:focus, &:hover:focus, &:active:focus, &:active:hover:focus { border-color: shade($bg_color, .7); } 288 | 289 | &:insensitive { 290 | border-color: shade($bg_color, .85); 291 | background-color: shade($bg_color, .9); 292 | background-image: none; 293 | } 294 | 295 | &:first-child { 296 | border-width: 1px; 297 | border-bottom-width: 0; 298 | border-bottom-right-radius: 0; 299 | border-bottom-left-radius: 0; 300 | } 301 | 302 | &:last-child { 303 | border-width: 1px; 304 | border-top-width: 0; 305 | border-top-left-radius: 0; 306 | border-top-right-radius: 0; 307 | } 308 | } 309 | 310 | .spinbutton.vertical.entry { 311 | border-width: 1px; 312 | border-style: solid; 313 | border-radius: 0; 314 | } 315 | } 316 | } 317 | 318 | 319 | /****************** 320 | ! ComboBoxes * 321 | *******************/ 322 | 323 | @include exports("combobox") { 324 | GtkComboBox { 325 | > .button { 326 | padding: ($spacing - 2px) ($spacing + 1px); 327 | 328 | -GtkComboBox-arrow-scaling: .5; 329 | -GtkComboBox-shadow-type: none; 330 | } 331 | 332 | &.combobox-entry { 333 | .entry, .button { @extend %linked_button; } 334 | } 335 | 336 | .separator { 337 | /* always disable separators */ 338 | -GtkWidget-wide-separators: true; 339 | -GtkWidget-horizontal-separator: 0; 340 | -GtkWidget-vertical-separator: 0; 341 | 342 | border-style: none; 343 | } 344 | } 345 | 346 | .linked > GtkComboBox { 347 | > .button { 348 | // the combo is a composite widget so the way we do button linked doesn't 349 | // work, special case needed. See 350 | // https://bugzilla.gnome.org/show_bug.cgi?id=733979 351 | &:dir(ltr) { @extend %linked_middle; } // specificity bump 352 | &:dir(rtl) { @extend %linked_middle:dir(rtl); } 353 | } 354 | 355 | &:first-child > .button { @extend %linked_button:first-child; } 356 | 357 | &:last-child > .button { @extend %linked_button:last-child; } 358 | 359 | &:only-child > .button { @extend %linked_button:only-child; } 360 | } 361 | } 362 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_calendar.scss: -------------------------------------------------------------------------------- 1 | /********** 2 | ! Calendar 3 | ***********/ 4 | 5 | @include exports("calendar") { 6 | GtkCalendar { 7 | padding: $spacing; 8 | outline-offset: -1px; 9 | 10 | &:inconsistent { color: mix($fg_color, $bg_color, 0.5); } 11 | 12 | &.view, &.highlight, &.header, &.button { 13 | &, &:focus, &:hover, &:insensitive { 14 | border: none; 15 | background-color: transparent; 16 | background-image: none; 17 | } 18 | } 19 | 20 | &.highlight { color: $selected_bg_color; } 21 | } 22 | 23 | /* gnome-calendar */ 24 | .calendar-view { 25 | background-color: $base_color; 26 | color: $text_color; 27 | } 28 | } 29 | 30 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_choosers.scss: -------------------------------------------------------------------------------- 1 | /*************** 2 | ! Color chooser 3 | ****************/ 4 | 5 | @include exports("colorchooser") { 6 | GtkColorSwatch { 7 | &, &:selected { 8 | border: 1px solid alpha(black, 0.1); 9 | border-radius: $roundness - 1px; 10 | background-color: transparent; 11 | background-clip: border-box; 12 | 13 | &:hover { border-color: alpha(black, 0.3); } 14 | } 15 | 16 | &.color-light:selected:hover, &.color-dark:selected:hover { background-image: none; } 17 | 18 | &.left, &:first-child { 19 | border-top-left-radius: $roundness; 20 | border-bottom-left-radius: $roundness; 21 | } 22 | 23 | &.right, &:last-child { 24 | border-top-right-radius: $roundness; 25 | border-bottom-right-radius: $roundness; 26 | } 27 | 28 | &:only-child { border-radius: $roundness; } 29 | 30 | &.top { 31 | border-top-left-radius: $roundness; 32 | border-top-right-radius: $roundness; 33 | } 34 | 35 | &.bottom { 36 | border-bottom-left-radius: $roundness; 37 | border-bottom-right-radius: $roundness; 38 | } 39 | 40 | GtkColorEditor & { 41 | border-radius: $roundness; 42 | 43 | &.color-dark:hover, &.color-light:hover { 44 | background-image: none; 45 | border-color: alpha(black, 0.3); 46 | } 47 | } 48 | } 49 | 50 | GtkColorChooserWidget #add-color-button { 51 | background-clip: padding-box; 52 | border-color: alpha(black, 0.1); 53 | background-color: shade($bg_color, 0.95); 54 | color: $fg_color; 55 | 56 | &:hover { 57 | border-color: alpha(black, 0.3); 58 | background-color: shade($bg_color, 0.90); 59 | color: $fg_color; 60 | } 61 | } 62 | 63 | .color-active-badge { 64 | &, &:selected { 65 | border-width: 2px; 66 | border-style: solid; 67 | background-color: transparent; 68 | } 69 | 70 | &.color-light { 71 | &, &:hover { 72 | border-color: alpha(black, 0.3); 73 | color: alpha(black, 0.3); 74 | } 75 | } 76 | 77 | &.color-dark { 78 | &, &:hover { 79 | border-color: alpha(white, 0.3); 80 | color: alpha(white, 0.3); 81 | } 82 | } 83 | } 84 | 85 | GtkColorButton.button { padding: $spacing; } 86 | } 87 | 88 | 89 | /*********************** 90 | ! Font and file choosers 91 | ************************/ 92 | 93 | @include exports("miscchoosers") { 94 | GtkFontButton, GtkFileChooserButton { 95 | .separator { 96 | /* always disable separators */ 97 | -GtkWidget-wide-separators: true; 98 | -GtkWidget-horizontal-separator: 0; 99 | -GtkWidget-vertical-separator: 0; 100 | } 101 | 102 | GtkLabel:last-child { color: alpha(currentColor, 0.7); } 103 | 104 | GtkImage:last-child { color: alpha(currentColor, 0.7); } 105 | } 106 | 107 | GtkFileChooser { 108 | .pane-separator { 109 | &, &:hover { 110 | border-width: 0 1px 0 0; 111 | border-style: solid; 112 | border-color: currentColor; 113 | background-color: $bg_color; 114 | color: shade($bg_color, ($contrast + .1)); 115 | } 116 | } 117 | 118 | /* for fallback when header bar not used */ 119 | .dialog-action-box { 120 | border-width: 1px 0 0; 121 | border-style: solid; 122 | border-color: shade($bg_color, 0.7); 123 | } 124 | } 125 | } 126 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_entry.scss: -------------------------------------------------------------------------------- 1 | /********* 2 | ! Entry * 3 | **********/ 4 | 5 | %linked_entry { 6 | border-width: 1px; 7 | border-radius: 0; 8 | border-right-width: 0; 9 | border-left-width: 0; 10 | 11 | &:first-child { 12 | border-width: 1px; 13 | border-radius: $roundness; 14 | border-right-width: 0; 15 | border-bottom-right-radius: 0; 16 | border-top-right-radius: 0; 17 | } 18 | 19 | &:last-child { 20 | border-width: 1px; 21 | border-radius: $roundness; 22 | border-left-width: 0; 23 | border-bottom-left-radius: 0; 24 | border-top-left-radius: 0; 25 | } 26 | 27 | &:only-child { 28 | border-width: 1px; 29 | border-radius: $roundness; 30 | } 31 | } 32 | 33 | %entry { 34 | padding: ($spacing - 1px) $spacing; 35 | border-width: 1px; 36 | border-style: solid; 37 | border-radius: $roundness; 38 | transition: border 150ms ease; 39 | box-shadow: inset 1px 1px alpha($dark_shadow, .06), 40 | inset -1px 0 alpha($dark_shadow, .06); 41 | 42 | &:focus, &:hover, &:active { transition: none; } 43 | 44 | &:selected, &:selected:focus { 45 | background-color: $selected_bg_color; 46 | color: $selected_fg_color; 47 | } 48 | 49 | &:insensitive { box-shadow: none; } 50 | 51 | &.progressbar { 52 | @include linear-gradient($selected_bg_color); 53 | 54 | border-width: 0; 55 | border-radius: $roundness; 56 | color: $selected_fg_color; 57 | } 58 | 59 | &.image.left { padding-right: $spacing; } 60 | } 61 | 62 | @mixin entry($bg, $fg) { 63 | @extend %entry; 64 | @include linear-gradient($bg, to top); 65 | @include border($bg); 66 | 67 | color: $fg; 68 | 69 | &:focus, &:active { border-color: $selected_bg_color; } 70 | 71 | &:insensitive { 72 | @include linear-gradient(shade($bg, .9), to top); 73 | 74 | color: mix($bg, $fg, .5); 75 | } 76 | } 77 | 78 | @include exports("entry") { 79 | .entry { 80 | @include entry($base_color, $text_color); 81 | 82 | &.linked, .linked & { @extend %linked_entry; } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_grid.scss: -------------------------------------------------------------------------------- 1 | /****************** 2 | ! Grid and flowbox 3 | *******************/ 4 | 5 | @include exports("grid") { 6 | .list { 7 | background-color: shade($bg_color, 0.97); 8 | color: $fg_color; 9 | 10 | &-row { 11 | &, &.button { 12 | border: none; 13 | border-radius: 0; 14 | padding: $spacing; 15 | background-image: none; 16 | background-color: alpha($bg_color, 0); 17 | box-shadow: none; 18 | 19 | &:hover { 20 | background-image: none; 21 | background-color: shade($bg_color, 1.02); 22 | } 23 | 24 | &:selected { 25 | &, &:hover, &:focus { 26 | background-image: none; 27 | background-color: $selected_bg_color; 28 | color: $selected_fg_color; 29 | } 30 | } 31 | } 32 | } 33 | } 34 | 35 | .grid-child { 36 | &, GtkFlowBox & { 37 | padding: $spacing; 38 | border-radius: $roundness; 39 | 40 | &:selected { 41 | @extend %selected; 42 | 43 | outline-offset: -2px; 44 | } 45 | } 46 | } 47 | } 48 | 49 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_infobar.scss: -------------------------------------------------------------------------------- 1 | @import "button"; 2 | 3 | 4 | /********* 5 | ! Infobar 6 | **********/ 7 | 8 | @include exports("infobar") { 9 | GtkInfoBar { 10 | border: none; 11 | 12 | $types: ( 13 | info: ( $info_fg_color, $info_bg_color ), 14 | warning: ( $warning_fg_color, $warning_bg_color ), 15 | question: ( $question_fg_color, $question_bg_color ), 16 | error: ( $error_fg_color, $error_bg_color ), 17 | ); 18 | 19 | 20 | @each $type, $colors in $types { 21 | $fg_color: nth($colors, 1); 22 | $bg_color: nth($colors, 2); 23 | 24 | &.#{$type} { 25 | @include linear-gradient($bg_color); 26 | 27 | border: 1px solid shade($bg_color, 0.8); 28 | color: $fg_color; 29 | 30 | .button { 31 | @include button($bg_color, $fg_color); 32 | 33 | &.close { @extend %close_button; } 34 | } 35 | } 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_menu.scss: -------------------------------------------------------------------------------- 1 | @import "entry"; 2 | 3 | 4 | /********* 5 | ! Menubar 6 | **********/ 7 | 8 | @include exports("menubar") { 9 | .menubar { 10 | -GtkWidget-window-dragging: true; 11 | 12 | border: none; 13 | background-color: $menubar_bg_color; 14 | background-image: none; 15 | color: $menubar_fg_color; 16 | 17 | 18 | &.menuitem, .menuitem { 19 | padding: $spacing ($spacing * 2); 20 | border: 1px solid transparent; 21 | background-color: transparent; 22 | background-image: none; 23 | color: $menubar_fg_color; 24 | 25 | &:hover { 26 | border-color: mix($menubar_bg_color, $menubar_fg_color, 0.21); 27 | background-color: mix($menubar_bg_color, $menubar_fg_color, 0.21); 28 | background-image: none; 29 | color: shade($menubar_fg_color, 1.08); 30 | } 31 | 32 | & *:hover { color: shade($menubar_fg_color, 1.08); } 33 | } 34 | } 35 | } 36 | 37 | 38 | /****** 39 | ! Menu 40 | *******/ 41 | 42 | @include exports("menu") { 43 | * { 44 | -GtkMenu-horizontal-padding: 0; 45 | -GtkMenu-vertical-padding: 0; 46 | } 47 | 48 | GtkTreeMenu, GtkMenuToolButton, GtkComboBox { 49 | &.menu, .menu { 50 | background-color: $menu_bg_color; 51 | margin: $spacing; 52 | } 53 | } 54 | 55 | #toolbar-popup, .menu { 56 | padding: 0; 57 | border-radius: 0; 58 | border: none; 59 | background-color: $menu_bg_color; 60 | color: $menu_fg_color; 61 | 62 | &:selected { background-color: $selected_bg_color; } 63 | 64 | .button { 65 | &, &:hover, &:active, &:active *:insensitive, &:insensitive { 66 | border-width: 0; 67 | background-color: transparent; 68 | background-image: none; 69 | } 70 | } 71 | } 72 | 73 | .context-menu { font: initial; } 74 | 75 | .menuitem { 76 | GtkTreeMenu & { 77 | padding: 0; 78 | border-width: 0; 79 | } 80 | 81 | &, .menu & { 82 | margin: $spacing; 83 | padding: $spacing; 84 | border: none; 85 | border-radius: 0; 86 | background-color: transparent; 87 | background-image: none; 88 | 89 | -GtkMenuItem-arrow-scaling: 0.5; 90 | 91 | &:active, &:hover { 92 | border: none; 93 | background-color: $selected_bg_color; 94 | background-image: none; 95 | color: $selected_fg_color; 96 | } 97 | 98 | & *:active, & *:hover { color: $selected_fg_color; } 99 | 100 | &:insensitive, & *:insensitive { color: mix($menu_fg_color, $menu_bg_color, .5); } 101 | } 102 | 103 | &.check, &.radio { 104 | &, &:focus, &:hover, &:insensitive { background-image: none; } 105 | 106 | &, &:focus, &:hover, &:active, &:insensitive { 107 | border-style: none; 108 | background-color: transparent; 109 | } 110 | } 111 | 112 | &.separator { 113 | -GtkMenuItem-horizontal-padding: 0; 114 | -GtkWidget-separator-height: 1; 115 | 116 | border-style: none; 117 | color: shade($menu_bg_color, ($contrast + .1)); 118 | } 119 | 120 | &.button, &.button.flat { 121 | &, &:focus, &:active, &:insensitive, &:active:insensitive { 122 | background-color: transparent; 123 | background-image: none; 124 | border: 0; 125 | box-shadow: none; 126 | color: currentColor; 127 | } 128 | 129 | &:hover, &:focus:hover, &:active:hover, &:selected { 130 | background-image: none; 131 | background-color: $selected_bg_color; 132 | color: $selected_fg_color; 133 | } 134 | } 135 | 136 | GtkCalendar { 137 | &:inconsistent { color: mix($menu_fg_color, $menu_bg_color, .5); } 138 | 139 | .button { 140 | border-style: none; 141 | background-color: transparent; 142 | background-image: none; 143 | } 144 | } 145 | 146 | .accelerator { 147 | color: alpha($menu_fg_color, .6); 148 | 149 | &:hover { color: alpha($selected_fg_color, .8); } 150 | 151 | &:insensitive { color: alpha(mix($menu_fg_color, $menu_bg_color, .5), .4); } 152 | } 153 | 154 | .entry { @include entry($menu_bg_color, $menu_fg_color); } 155 | } 156 | 157 | GtkModelMenuItem GtkBox GtkImage { padding-right: $spacing; } 158 | } 159 | 160 | 161 | /********* 162 | ! Popover 163 | **********/ 164 | 165 | @include exports("popover") { 166 | GtkPopover { 167 | @include border($menu_bg_color); 168 | 169 | margin: 10px; 170 | padding: $spacing; 171 | border-radius: $roundness; 172 | border-width: 1px; 173 | border-style: solid; 174 | background-clip: border-box; 175 | background-color: $menu_bg_color; 176 | background-image: none; 177 | color: $menu_fg_color; 178 | box-shadow: 0 3px 6px alpha(black, .16); 179 | 180 | &.background { 181 | background-image: none; 182 | background-color: $menu_bg_color; 183 | color: $menu_fg_color; 184 | } 185 | 186 | &:backdrop { box-shadow: none; } 187 | 188 | &.osd { 189 | box-shadow: 0 2px 7px 3px alpha(black, .5); 190 | 191 | > .toolbar .button { 192 | border-radius: 0; 193 | border-width: 0; 194 | background-color: transparent; 195 | background-image: none; 196 | } 197 | } 198 | 199 | .view, .list { 200 | background-color: transparent; 201 | background-image: none; 202 | color: $menu_fg_color; 203 | } 204 | 205 | .list-row { 206 | &, &.button { 207 | background-color: transparent; 208 | background-image: none; 209 | color: $menu_fg_color; 210 | 211 | &:focus, &:hover, &:active { 212 | background-image: none; 213 | background-color: $selected_bg_color; 214 | color: $selected_fg_color; 215 | } 216 | } 217 | } 218 | 219 | .frame { 220 | border-color: border_normal($menu_bg_color); 221 | border-radius: $roundness; 222 | } 223 | 224 | .entry { @include entry($menu_bg_color, $menu_fg_color); } 225 | 226 | .button { @include button($menu_bg_color, $menu_fg_color); } 227 | 228 | > .list, > .view, > .toolbar { background-color: transparent; } 229 | 230 | .separator { 231 | border: 0; 232 | background-color: transparent; 233 | color: alpha($menu_bg_color, .5); 234 | font-size: 80%; 235 | font-weight: bold; 236 | } 237 | } 238 | 239 | GtkModelButton.button { 240 | &, &:backdrop { 241 | @include button(transparent, currentColor); 242 | 243 | &:focus:hover, &:active:hover, &:hover, &:selected { 244 | background-image: none; 245 | background-color: $selected_bg_color; 246 | color: $selected_fg_color; 247 | } 248 | } 249 | } 250 | } 251 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_misc.scss: -------------------------------------------------------------------------------- 1 | /*************** 2 | ! Dimmed label * 3 | ****************/ 4 | 5 | @include exports("dimlabel") { 6 | .dim-label { 7 | opacity: 0.5; 8 | text-shadow: none; 9 | } 10 | } 11 | 12 | 13 | /*********** 14 | ! Tooltip * 15 | ************/ 16 | 17 | @include exports("tooltip") { 18 | .tooltip { 19 | @include linear-gradient($tooltip_bg_color); 20 | 21 | border: none; 22 | border-radius: $roundness; 23 | color: $tooltip_fg_color; 24 | 25 | * { background-color: transparent; } 26 | } 27 | } 28 | 29 | 30 | /*********** 31 | ! Dialogs * 32 | ************/ 33 | 34 | @include exports("dialogs") { 35 | GtkMessageDialog, .message-dialog, .prompt { 36 | -GtkDialog-content-area-border: 0; 37 | -GtkDialog-action-area-border: $spacing; 38 | -GtkDialog-button-spacing: 0; 39 | 40 | margin: 0; 41 | padding: 0; 42 | } 43 | } 44 | 45 | 46 | /********************* 47 | ! App notifications * 48 | **********************/ 49 | 50 | @include exports("notifications") { 51 | .app-notification { 52 | &, &.frame { 53 | border-style: solid; 54 | border-color: border_normal($osd_bg); 55 | border-width: 0 1px 1px 1px; 56 | border-radius: 0 0 $roundness $roundness; 57 | padding: $spacing * 2; 58 | background-color: $osd_bg; 59 | background-image: none; 60 | color: $osd_fg; 61 | 62 | .button { @include button($osd_bg, $osd_fg); } 63 | } 64 | } 65 | } 66 | 67 | 68 | /************* 69 | ! Expanders * 70 | **************/ 71 | 72 | @include exports("expander") { 73 | GtkExpander { 74 | padding: $spacing; 75 | outline-offset: 1px; 76 | } 77 | 78 | .expander { 79 | color: alpha(currentColor, 0.7); 80 | border: alpha(currentColor, 0.7); 81 | 82 | &:hover { 83 | color: alpha(currentColor, 0.8); 84 | border-color: alpha(currentColor, 0.8); 85 | } 86 | 87 | &:active { 88 | color: alpha(currentColor, 0.9); 89 | border-color: alpha(currentColor, 0.9); 90 | } 91 | } 92 | } 93 | 94 | 95 | /******************* 96 | ! Symbolic images * 97 | ********************/ 98 | 99 | @include exports("symbolicimage") { 100 | .image { 101 | color: alpha(currentColor, 0.5); 102 | 103 | &:hover { color: alpha(currentColor, 0.9); } 104 | 105 | &:selected, &:selected:hover { color: $selected_fg_color; } 106 | } 107 | } 108 | 109 | 110 | /**************** 111 | ! Floating bar * 112 | *****************/ 113 | 114 | @include exports("floatingbar") { 115 | .floating-bar { 116 | @include linear-gradient($bg_color); 117 | 118 | border: 1px solid border_normal($bg_color); 119 | border-radius: $roundness; 120 | color: $fg_color; 121 | 122 | &.top { 123 | border-top-width: 0; 124 | border-top-right-radius: 0; 125 | border-top-left-radius: 0; 126 | } 127 | 128 | &.right { 129 | border-right-width: 0; 130 | border-top-right-radius: 0; 131 | border-bottom-right-radius: 0; 132 | } 133 | 134 | &.bottom { 135 | border-bottom-width: 0; 136 | border-bottom-right-radius: 0; 137 | border-bottom-left-radius: 0; 138 | } 139 | 140 | &.left { 141 | border-left-width: 0; 142 | border-bottom-left-radius: 0; 143 | border-top-left-radius: 0; 144 | } 145 | 146 | .button { 147 | -GtkButton-image-spacing: 0; 148 | -GtkButton-inner-border: 0; 149 | 150 | border: none; 151 | background-color: transparent; 152 | background-image: none; 153 | } 154 | } 155 | } 156 | 157 | 158 | /************************* 159 | ! Touch text selections * 160 | **************************/ 161 | 162 | @include exports("touchbubble") { 163 | GtkBubbleWindow { 164 | border-radius: $roundness; 165 | background-clip: border-box; 166 | 167 | &.osd.background { background-color: $osd_bg; } 168 | 169 | .toolbar { background-color: transparent; } 170 | } 171 | } 172 | 173 | /*************** 174 | ! Font-viewer * 175 | ****************/ 176 | 177 | @include exports("fontviewer") { 178 | SushiFontWidget { 179 | padding: $spacing ($spacing * 2); 180 | } 181 | } 182 | 183 | 184 | /************* 185 | ! Gucharmap * 186 | **************/ 187 | 188 | @include exports("charmap") { 189 | GucharmapChartable { 190 | background-color: $base_color; 191 | color: $text_color; 192 | 193 | &:focus, &:hover, &:active, &:selected { @extend %selected; } 194 | } 195 | } 196 | 197 | 198 | /************* 199 | ! Evolution * 200 | **************/ 201 | 202 | @include exports("evolution") { 203 | EPreviewPane .entry { 204 | background-color: $base_color; 205 | color: $text_color; 206 | } 207 | } 208 | 209 | 210 | /******************* 211 | ! Gnome Bluetooth * 212 | ********************/ 213 | 214 | @include exports("gnome-bluetooth") { 215 | GtkEntry.entry.pin-entry { 216 | font: regular 50; 217 | padding-left: 25px; 218 | padding-right: 25px; 219 | } 220 | 221 | GtkLabel.pin-label { font: regular 50; } 222 | } 223 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_notebook.scss: -------------------------------------------------------------------------------- 1 | @import "button"; 2 | 3 | 4 | /********** 5 | ! Notebook 6 | ***********/ 7 | 8 | @include exports("notebook") { 9 | .notebook { 10 | padding: 0; 11 | border-width: 1px 0 0 0; 12 | border-style: solid; 13 | border-color: border_normal($base_color); 14 | border-radius: 0; 15 | background-color: $base_color; 16 | background-image: none; 17 | background-clip: border-box; 18 | color: $text_color; 19 | 20 | -GtkNotebook-initial-gap: 0; 21 | -GtkNotebook-arrow-spacing: 5; 22 | -GtkNotebook-tab-curvature: 0; 23 | -GtkNotebook-tab-overlap: 1; 24 | -GtkNotebook-has-tab-gap: false; 25 | 26 | &.frame { border-width: 1px; } 27 | 28 | &.header { 29 | border-width: 0; 30 | background-color: shade($base_color, .9); 31 | 32 | &.frame { 33 | border-color: border_normal($base_color); 34 | 35 | &.top { border-width: 1px 1px 0 1px; } 36 | 37 | &.right { border-width: 1px 1px 1px 0; } 38 | 39 | &.bottom { border-width: 0 1px 1px 1px; } 40 | 41 | &.left { border-width: 1px 0 1px 1px; } 42 | } 43 | } 44 | 45 | GtkViewport { 46 | border-width: 0; 47 | background-color: $base_color; 48 | color: $text_color; 49 | } 50 | 51 | tab { 52 | padding: ($spacing + 1px) ($spacing * 2); 53 | border: 1px solid transparent; 54 | background-color: transparent; 55 | background-image: none; 56 | 57 | &:hover { 58 | background-color: shade($base_color, .95); 59 | border-color: shade($base_color, .8); 60 | } 61 | 62 | &:active { 63 | background-color: $base_color; 64 | background-image: none; 65 | border-color: shade($base_color, .85); 66 | } 67 | 68 | &.top { 69 | border-bottom-width: 0; 70 | border-bottom-right-radius: 0; 71 | border-bottom-left-radius: 0; 72 | } 73 | 74 | &.right { 75 | border-left-width: 0; 76 | border-bottom-left-radius: 0; 77 | border-top-left-radius: 0; 78 | } 79 | 80 | 81 | &.bottom { 82 | border-top-width: 0; 83 | border-top-right-radius: 0; 84 | border-top-left-radius: 0; 85 | } 86 | 87 | &.left { 88 | border-right-width: 0; 89 | border-top-right-radius: 0; 90 | border-bottom-right-radius: 0; 91 | } 92 | 93 | GtkLabel { color: mix($text_color, $base_color, 0.3); } 94 | 95 | /* close button styling */ 96 | .button { @extend %close_button; } 97 | } 98 | 99 | .prelight-page { 100 | &, GtkLabel { color: mix($text_color, $base_color, 0.15); } 101 | } 102 | 103 | .active-page { 104 | &, GtkLabel { color: $text_color; } 105 | } 106 | 107 | .reorderable-page { 108 | &:hover { 109 | background-color: shade($base_color, 0.85); 110 | border-left: 0; 111 | border-right: 0; 112 | /* using box shadows instead of borders due to slanted edges */ 113 | box-shadow: inset 0 3px alpha(black, 0.03), inset 0 2px alpha(black, 0.03), inset 0 1px alpha(black, 0.03), 114 | inset 1px 0 shade($base_color, 0.7), inset -1px 0 shade($base_color, 0.7); 115 | } 116 | 117 | &:active { 118 | background-color: shade($base_color, 0.90); 119 | border-left: 0; 120 | border-right: 0; 121 | box-shadow: inset 0 3px alpha(black, 0.03), inset 0 2px alpha(black, 0.03), inset 0 1px alpha(black, 0.03), 122 | inset 1px 0 shade($base_color, 0.75), inset -1px 0 shade($base_color, 0.75); 123 | } 124 | } 125 | } 126 | } 127 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_osd.scss: -------------------------------------------------------------------------------- 1 | @import "button"; 2 | 3 | 4 | /******* 5 | ! OSD * 6 | ********/ 7 | 8 | @include exports("osd") { 9 | GtkOverlay.osd { background-color: transparent; } 10 | 11 | .osd { 12 | &.background { 13 | background-color: alpha($osd_bg, 0.8); 14 | color: $osd_fg; 15 | } 16 | 17 | &.frame { 18 | background-clip: border-box; 19 | background-origin: border-box; 20 | } 21 | 22 | &.button, .button { @include button($osd_bg, $osd_fg); } 23 | 24 | 25 | &.toolbar { 26 | -GtkToolbar-button-relief: normal; 27 | 28 | padding: $spacing; 29 | border: 1px solid border_normal($osd_bg); 30 | border-radius: $roundness; 31 | background-color: $osd_bg; 32 | background-image: none; 33 | color: $osd_fg; 34 | 35 | .separator { color: shade($osd_bg, ($contrast + .1)); } 36 | } 37 | 38 | /* used by gnome-settings-daemon's media-keys OSD */ 39 | &.trough { background-color: shade($osd_bg, 0.8); } 40 | 41 | &.progressbar { background-color: $osd_fg; } 42 | 43 | .scale { 44 | &.slider { 45 | @include linear-gradient(shade($osd_bg, 1.08)); 46 | @include border($osd_bg); 47 | 48 | &:insensitive { @include linear-gradient(shade($osd_bg, 0.9)); } 49 | } 50 | 51 | &.trough { 52 | border-color: shade($osd_bg, 0.8); 53 | background-color: shade($osd_bg, 1.08); 54 | background-image: none; 55 | 56 | &.highlight { 57 | border-color: $selected_bg_color; 58 | background-color: $selected_bg_color; 59 | background-image: none; 60 | } 61 | 62 | &:insensitive, &.highlight:insensitive { 63 | border-color: shade($osd_bg, 0.85); 64 | background-color: shade($osd_bg, 0.9); 65 | background-image: none; 66 | } 67 | } 68 | } 69 | 70 | &.view, .view { background-color: $osd_bg; } 71 | 72 | .scrollbar { 73 | .trough { background-color: $osd_bg; } 74 | 75 | .slider { 76 | border: 1px solid mix(shade($osd_bg, 0.87), $osd_fg, 0.21); 77 | border-radius: 0; 78 | background-color: mix($osd_bg, $osd_fg, 0.21); 79 | 80 | &:hover { 81 | border-color: mix(shade($osd_bg, 0.87), $osd_fg, 0.31); 82 | background-color: mix($osd_bg, $osd_fg, 0.31); 83 | } 84 | 85 | &:active { 86 | border-color: shade($selected_bg_color, 0.9); 87 | background-color: $selected_bg_color; 88 | } 89 | } 90 | } 91 | 92 | GtkIconView.cell { 93 | &:selected, &:selected:focus { 94 | background-color: transparent; 95 | border: 3px solid mix(shade($osd_bg, 0.87), $osd_fg, 0.21); 96 | border-radius: $roundness; 97 | outline-color: transparent; 98 | } 99 | } 100 | 101 | /* used by Documents */ 102 | .page-thumbnail { 103 | border: 1px solid shade($osd_bg, 0.9); 104 | /* when there's no pixbuf yet */ 105 | background-color: $osd_bg; 106 | } 107 | } 108 | 109 | .osd GtkProgressBar, GtkProgressBar.osd { 110 | -GtkProgressBar-xspacing: 0; 111 | -GtkProgressBar-yspacing: 2px; 112 | -GtkProgressBar-min-horizontal-bar-height: 2px; 113 | 114 | padding: 0; 115 | 116 | &.trough { 117 | padding: 0; 118 | border-style: none; 119 | border-radius: 0; 120 | background-image: none; 121 | background-color: transparent; 122 | } 123 | 124 | &.progressbar { 125 | border-style: none; 126 | border-radius: 0; 127 | background-color: $selected_bg_color; 128 | background-image: none; 129 | } 130 | } 131 | } 132 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_overshoot.scss: -------------------------------------------------------------------------------- 1 | @mixin overshoot($position, $type: normal, $color: $selected_bg_color) { 2 | $_small_gradient_length: 5%; 3 | $_big_gradient_length: 100%; 4 | 5 | $_position: center top; 6 | $_small_gradient_size: 100% $_small_gradient_length; 7 | $_big_gradient_size: 100% $_big_gradient_length; 8 | 9 | @if $position == bottom { 10 | $_position: center bottom; 11 | $_linear_gradient_direction: to top; 12 | } 13 | 14 | @else if $position == right { 15 | $_position: right center; 16 | $_small_gradient_size: $_small_gradient_length 100%; 17 | $_big_gradient_size: $_big_gradient_length 100%; 18 | } 19 | 20 | @else if $position == left { 21 | $_position: left center; 22 | $_small_gradient_size: $_small_gradient_length 100%; 23 | $_big_gradient_size: $_big_gradient_length 100%; 24 | } 25 | 26 | $_small_gradient_color: $color; 27 | $_big_gradient_color: $color; 28 | 29 | $_small_gradient: -gtk-gradient(radial, 30 | $_position, 0, 31 | $_position, 0.5, 32 | to(alpha($_small_gradient_color, .35)), 33 | to(alpha($_small_gradient_color, .25))); 34 | 35 | $_big_gradient: -gtk-gradient(radial, 36 | $_position, 0, 37 | $_position, 0.6, 38 | from(alpha($_big_gradient_color, .2)), 39 | to(alpha($_big_gradient_color, 0))); 40 | 41 | @if $type == normal { 42 | background-image: $_small_gradient, $_big_gradient; 43 | background-size: $_small_gradient_size, $_big_gradient_size; 44 | } @else if $type == backdrop { 45 | background-image: $_small_gradient; 46 | background-size: $_small_gradient_size; 47 | } 48 | 49 | background-repeat: no-repeat; 50 | background-position: $_position; 51 | 52 | background-color: transparent; // reset some properties to be sure to not inherit them somehow 53 | border: none; 54 | box-shadow: none; 55 | } 56 | 57 | @mixin undershoot($position) { 58 | $_undershoot_color_dark: alpha(black, .2); 59 | $_undershoot_color_light: alpha(white, .2); 60 | 61 | $_gradient_dir: left; 62 | $_dash_bg_size: 10px 1px; 63 | $_gradient_repeat: repeat-x; 64 | $_bg_pos: center $position; 65 | 66 | background-color: transparent; // shouldn't be needed, but better to be sure; 67 | 68 | @if ($position == left) or ($position == right) { 69 | $_gradient_dir: top; 70 | $_dash_bg_size: 1px 10px; 71 | $_gradient_repeat: repeat-y; 72 | $_bg_pos: $position center; 73 | } 74 | 75 | background-image: linear-gradient(to $_gradient_dir, // this is the dashed line 76 | $_undershoot_color_light 50%, 77 | $_undershoot_color_dark 50%); 78 | 79 | padding-#{$position}: 1px; 80 | background-size: $_dash_bg_size; 81 | background-repeat: $_gradient_repeat; 82 | background-origin: content-box; 83 | background-position: $_bg_pos; 84 | } 85 | 86 | // This is used by GtkScrolledWindow, when content is touch-dragged past boundaries. 87 | // This draws a box on top of the content, the size changes programmatically. 88 | .overshoot { 89 | &.top { 90 | @include overshoot(top); 91 | 92 | &:backdrop { @include overshoot(top, backdrop); } 93 | } 94 | 95 | &.bottom { 96 | @include overshoot(bottom); 97 | 98 | &:backdrop { @include overshoot(bottom, backdrop); } 99 | } 100 | 101 | &.left { 102 | @include overshoot(left); 103 | 104 | &:backdrop { @include overshoot(left, backdrop); } 105 | } 106 | 107 | &.right { 108 | @include overshoot(right); 109 | 110 | &:backdrop { @include overshoot(right, backdrop); } 111 | } 112 | } 113 | 114 | // Overflow indication, works similarly to the overshoot, the size if fixed tho. 115 | .undershoot { 116 | &.top { @include undershoot(top); } 117 | 118 | &.bottom { @include undershoot(bottom); } 119 | 120 | &.left { @include undershoot(left); } 121 | 122 | &.right { @include undershoot(right); } 123 | } 124 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_progress.scss: -------------------------------------------------------------------------------- 1 | /***************** 2 | ! Progress bars * 3 | ******************/ 4 | 5 | @include exports("progressbar") { 6 | GtkProgressBar { 7 | padding: 0; 8 | border-radius: $roundness; 9 | font-size: smaller; 10 | color: alpha($fg_color, 0.6); 11 | 12 | -GtkProgressBar-min-horizontal-bar-height: 6; 13 | -GtkProgressBar-min-vertical-bar-width: 6; 14 | 15 | &.osd { 16 | -GtkProgressBar-xspacing: 0; 17 | -GtkProgressBar-yspacing: 0; 18 | -GtkProgressBar-min-horizontal-bar-height: 3; 19 | } 20 | 21 | &.trough { 22 | border: 1px solid alpha(border_normal($bg_color), 0.5); 23 | background-color: shade($bg_color, 1.08); 24 | background-image: none; 25 | } 26 | } 27 | 28 | .progressbar { 29 | @include linear-gradient($selected_bg_color); 30 | 31 | border-radius: 0; 32 | box-shadow: none; 33 | 34 | &.left { 35 | border-top-left-radius: $roundness; 36 | border-bottom-left-radius: $roundness; 37 | } 38 | 39 | &.right { 40 | border-top-right-radius: $roundness; 41 | border-bottom-right-radius: $roundness; 42 | } 43 | 44 | &.left.right { box-shadow: none; } 45 | 46 | &.vertical { 47 | @include linear-gradient($selected_bg_color, to right); 48 | 49 | &.bottom { 50 | border-bottom-left-radius: $roundness; 51 | border-bottom-right-radius: $roundness; 52 | } 53 | 54 | &.top { 55 | border-top-left-radius: $roundness; 56 | border-top-right-radius: $roundness; 57 | } 58 | } 59 | } 60 | 61 | GtkLevelBar { 62 | -GtkLevelBar-min-block-width: 34; 63 | -GtkLevelBar-min-block-height: 3; 64 | 65 | &.vertical { 66 | -GtkLevelBar-min-block-width: 3; 67 | -GtkLevelBar-min-block-height: 34; 68 | } 69 | } 70 | 71 | .level-bar { 72 | &.trough { 73 | @include linear-gradient(shade($bg_color, 1.08), to top); 74 | 75 | border: 1px solid alpha(border_normal($bg_color), 0.5); 76 | border-radius: $roundness; 77 | } 78 | 79 | &.fill-block { 80 | @include linear-gradient($selected_bg_color); 81 | 82 | // FIXME: it would be nice to set make fill blocks bigger, but we'd need 83 | // :nth-child working on discrete indicators 84 | border-color: transparent; 85 | border-radius: 0; 86 | 87 | &.indicator-discrete { 88 | &.horizontal { margin-right: 1px; } 89 | &.vertical { margin-bottom: 1px; } 90 | } 91 | 92 | &.level-high { 93 | background-color: $success_color; 94 | border-color: transparent; 95 | } 96 | 97 | &.level-low { 98 | background-color: $warning_color; 99 | border-color: transparent; 100 | } 101 | 102 | &.empty-fill-block { 103 | background-color: transparent; 104 | border-color: transparent; 105 | box-shadow: none; 106 | } 107 | } 108 | } 109 | 110 | .scale { 111 | -GtkRange-slider-width: 16; 112 | -GtkRange-trough-border: 1; 113 | -GtkScale-slider-length: 16; 114 | 115 | padding: 0; 116 | border-width: 1px; 117 | border-radius: $roundness; 118 | outline-offset: -1px; 119 | 120 | 121 | &.slider { 122 | @include linear-gradient(shade($bg_color, 1.08)); 123 | @include border($bg_color); 124 | 125 | border-radius: 8px; 126 | border-width: 1px; 127 | border-style: solid; 128 | box-shadow: 0 1px 2px -1px alpha($dark_shadow, .3); 129 | 130 | &:insensitive { @include linear-gradient(shade($bg_color, 0.9)); } 131 | } 132 | 133 | &.fine-tune { 134 | &, &.horizontal { 135 | &:active, &:active:hover { 136 | background-size: 50%; 137 | background-repeat: no-repeat; 138 | background-position: center; 139 | } 140 | } 141 | } 142 | 143 | &.mark { border-color: alpha(border_normal($bg_color), 0.5); } 144 | 145 | 146 | &.trough { 147 | @include linear-gradient(shade($bg_color, 1.08)); 148 | 149 | margin: 7px 0; 150 | border: 1px solid alpha(border_normal($bg_color), 0.5); 151 | border-radius: $roundness; 152 | 153 | &:insensitive { @include linear-gradient(shade($bg_color, 0.9)); } 154 | 155 | &.vertical { margin: 0 7px; } 156 | } 157 | 158 | &.highlight { 159 | &, &.left, &.bottom { 160 | @include linear-gradient($selected_bg_color); 161 | 162 | border-color: $selected_bg_color; 163 | 164 | &:insensitive { 165 | @include linear-gradient(shade($bg_color, 0.8)); 166 | 167 | border-color: shade($bg_color, 0.7); 168 | } 169 | } 170 | } 171 | } 172 | } 173 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_scrollbar.scss: -------------------------------------------------------------------------------- 1 | /*********** 2 | ! Scrollbar 3 | ************/ 4 | 5 | @include exports("scrollbar") { 6 | * { 7 | -GtkRange-slider-width: 8; 8 | -GtkRange-stepper-spacing: 0; 9 | -GtkRange-trough-border: 2; 10 | -GtkRange-trough-under-steppers: 1; 11 | -GtkScrollbar-has-backward-stepper: false; 12 | -GtkScrollbar-has-forward-stepper: false; 13 | -GtkScrollbar-min-slider-length: 80; 14 | -GtkScrolledWindow-scrollbar-spacing: 0; 15 | -GtkScrolledWindow-scrollbars-within-bevel: 1; 16 | } 17 | 18 | .scrollbar { 19 | border: 0; 20 | padding: 0; 21 | 22 | &.button { 23 | &, &:active, &:active:hover { 24 | border-width: 0; 25 | border-radius: 0; 26 | background-color: transparent; 27 | background-image: none; 28 | color: alpha($fg_color, 0.5); 29 | } 30 | } 31 | 32 | &.slider, &.slider.vertical { 33 | border: 0; 34 | border-radius: $roundness; 35 | background-color: shade($bg_color, 0.5); 36 | 37 | &:hover { background-color: shade($bg_color, 0.3); } 38 | 39 | &:active { background-color: $selected_bg_color_alt; } 40 | 41 | &.fine-tune:prelight:active { border: 2px solid transparent; } 42 | } 43 | 44 | // overlay scrolling indicator 45 | &.overlay-indicator { 46 | &:not(.dragging):not(.hovering) { 47 | opacity: 0.5; 48 | 49 | -GtkRange-slider-width: 4px; 50 | 51 | .slider { 52 | margin: 0; 53 | background-color: $fg_color; 54 | background-clip: padding-box; 55 | } 56 | 57 | .trough { 58 | border-style: none; 59 | background-color: transparent; 60 | } 61 | } 62 | 63 | &.dragging, &.hovering { opacity: 0.7; } 64 | } 65 | } 66 | 67 | .scrollbars-junction, 68 | .scrollbars-junction.frame, 69 | .scrollbar.trough { 70 | border: 0; 71 | border-radius: 0; 72 | background-color: $bg_color; 73 | background-image: none; 74 | } 75 | 76 | // ubuntu overlay scrollbars 77 | OsThumb, OsScrollbar { 78 | color: shade($bg_color, 0.7); 79 | 80 | &:selected { background-color: $selected_bg_color; } 81 | 82 | &:active { background-color: $selected_bg_color; } 83 | 84 | &:insensitive { background-color: shade($bg_color, 0.9); } 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_sidebar.scss: -------------------------------------------------------------------------------- 1 | /********* 2 | ! Sidebar 3 | **********/ 4 | 5 | @include exports("sidebar") { 6 | .sidebar { 7 | &, &.view, & .view, & GtkScrolledWindow { 8 | background-color: $bg_color; 9 | color: mix($fg_color, $bg_color, 0.1); 10 | 11 | &.separator { 12 | &, &:hover, &:focus { 13 | border-width: 1px; 14 | border-style: solid; 15 | border-color: shade($bg_color, 0.9); 16 | color: shade($bg_color, 0.9); 17 | } 18 | } 19 | } 20 | 21 | row, .view row { 22 | &:selected { 23 | &, &:hover, &:focus { 24 | border: none; 25 | background-image: none; 26 | background-color: $selected_bg_color; 27 | color: $selected_fg_color; 28 | } 29 | 30 | &:prelight { 31 | border: none; 32 | background-image: none; 33 | background-color: shade($selected_bg_color, 1.05); 34 | color: $selected_fg_color; 35 | } 36 | } 37 | 38 | &:prelight { color: $selected_bg_color_alt; } 39 | } 40 | 41 | .frame { border-width: 0; } 42 | 43 | GtkAssistant & { 44 | padding: $spacing; 45 | border-width: 0 1px 0 0; 46 | border-style: solid; 47 | border-right-color: border_normal($bg_color); 48 | border-radius: 0; 49 | background-color: $bg_color; 50 | color: mix($fg_color, $bg_color, 0.1); 51 | 52 | &:dir(ltr) { border-width: 0 1px 0 0; } 53 | &:dir(rtl) { border-width: 0 0 0 1px; } 54 | 55 | .label { 56 | padding: $spacing ($spacing * 2); 57 | 58 | &.highlight { background-color: mix($bg_color, $fg_color, 0.80); } 59 | } 60 | 61 | &.csd .sidebar { border-top-style: none; } 62 | 63 | .highlight { font: bold; } 64 | } 65 | } 66 | } 67 | 68 | 69 | /****** 70 | ! Paned 71 | *******/ 72 | 73 | @include exports("paned") { 74 | GtkPaned { 75 | -GtkPaned-handle-size: 1; 76 | -gtk-icon-source: none; 77 | 78 | margin: 0 $spacing; 79 | } 80 | 81 | 82 | GtkPaned:dir(rtl) { 83 | margin-right: 0; 84 | margin-left: $spacing; 85 | } 86 | 87 | GtkPaned .pane-separator { background-color: shade($bg_color, 0.9); } 88 | 89 | GtkPaned.wide { 90 | -GtkPaned-handle-size: 4; 91 | 92 | margin: 0; 93 | } 94 | 95 | GtkPaned.wide .pane-separator { 96 | background-color: transparent; 97 | border-style: none solid; 98 | border-color: shade($bg_color, 0.9); 99 | border-width: 1px; 100 | } 101 | 102 | GtkPaned.wide.vertical .pane-separator { border-style: solid none; } 103 | } 104 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_spinner.scss: -------------------------------------------------------------------------------- 1 | /******************* 2 | ! Spinner animation 3 | ********************/ 4 | 5 | @include exports("spinner") { 6 | @keyframes spin { 7 | to { -gtk-icon-transform: rotate(1turn); } 8 | } 9 | 10 | .spinner { 11 | background-image: none; 12 | background-color: $selected_bg_color; 13 | opacity: 0; // non spinning spinner makes no sense 14 | 15 | -gtk-icon-source: -gtk-icontheme("process-working-symbolic"); 16 | 17 | &:active { 18 | opacity: 1; 19 | animation: spin 1s linear infinite; 20 | 21 | &:insensitive { opacity: 0.5; } 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_toggle.scss: -------------------------------------------------------------------------------- 1 | /*********************** 2 | ! Check and Radio items 3 | ************************/ 4 | 5 | $suffix: if($variant == "dark", "-dark", ""); 6 | 7 | @mixin toggle($type) { 8 | background-image: none; 9 | 10 | -gtk-icon-source: url("../assets/#{$type}-unchecked#{$suffix}.png"); 11 | 12 | &:insensitive { -gtk-icon-source: url("../assets/#{$type}-unchecked-insensitive#{$suffix}.png"); } 13 | 14 | &:checked, &:active { 15 | -gtk-icon-source: url("../assets/#{$type}-checked#{$suffix}.png"); 16 | 17 | &:insensitive { -gtk-icon-source: url("../assets/#{$type}-checked-insensitive#{$suffix}.png"); } 18 | } 19 | 20 | &:inconsistent { 21 | -gtk-icon-source: url("../assets/#{$type}-mixed#{$suffix}.png"); 22 | 23 | &:insensitive { -gtk-icon-source: url("../assets/#{$type}-mixed-insensitive#{$suffix}.png"); } 24 | } 25 | 26 | &.menuitem { 27 | -gtk-icon-source: none; 28 | 29 | &:insensitive { -gtk-icon-source: none; } 30 | 31 | &:checked, &:active { 32 | -gtk-icon-source: url("../assets/menuitem-#{$type}-checked.png"); 33 | 34 | &:hover { -gtk-icon-source: url("../assets/menuitem-#{$type}-checked-hover.png"); } 35 | 36 | &:insensitive { -gtk-icon-source: url("../assets/menuitem-#{$type}-checked-insensitive.png"); } 37 | } 38 | 39 | &:inconsistent { 40 | -gtk-icon-source: url("../assets/menuitem-#{$type}-mixed.png"); 41 | 42 | &:hover { -gtk-icon-source: url("../assets/menuitem-#{$type}-mixed-hover.png"); } 43 | 44 | &:insensitive { -gtk-icon-source: url("../assets/menuitem-#{$type}-mixed-insensitive.png"); } 45 | } 46 | } 47 | } 48 | 49 | @include exports("checkradio") { 50 | * { 51 | -GtkCheckButton-indicator-size: 16; 52 | -GtkCheckMenuItem-indicator-size: 16; 53 | } 54 | 55 | .radio { @include toggle("radio"); } 56 | 57 | .check { @include toggle("checkbox"); } 58 | 59 | GtkIconView.content-view.cell.check { 60 | -gtk-icon-source: url("assets/grid-selection-unchecked#{$suffix}.png"); 61 | 62 | &:active { -gtk-icon-source: url("assets/grid-selection-checked#{$suffix}.png"); } 63 | } 64 | } 65 | 66 | 67 | /******** 68 | ! Switch 69 | *********/ 70 | 71 | @include exports("switch") { 72 | GtkSwitch { 73 | padding: 0; 74 | border-radius: $roundness; 75 | font: bold condensed; 76 | outline-offset: -4px; 77 | 78 | &.slider { 79 | @include linear-gradient(shade($bg_color, 1.2)); 80 | 81 | border: 1px solid rgba(0,0,0,0.2); 82 | box-shadow: 0 1px 2px -1px alpha($dark_shadow, .12); 83 | 84 | &:insensitive { 85 | border-color: rgba(0,0,0,0.1); 86 | background-color: shade($bg_color, 0.9); 87 | box-shadow: none; 88 | } 89 | } 90 | 91 | &.trough { 92 | @include linear-gradient(shade($bg_color, .95), to top); 93 | 94 | border: 1px solid border_normal($bg_color); 95 | color: $fg_color; 96 | box-shadow: inset 1px 0 alpha($dark_shadow, .07), 97 | inset 0 1px alpha($dark_shadow, .08), 98 | inset -1px 0 alpha($dark_shadow, .07), 99 | inset 0 -1px alpha($dark_shadow, .05); 100 | 101 | &:active { 102 | @include linear-gradient($selected_bg_color, to top); 103 | 104 | border-color: shade($selected_bg_color, 0.9); 105 | color: $selected_fg_color; 106 | } 107 | 108 | &:insensitive { 109 | @include linear-gradient(shade($bg_color, .9), to top); 110 | 111 | border-color: border_insensitive($bg_color); 112 | color: mix($fg_color, $bg_color, 0.5); 113 | } 114 | } 115 | } 116 | } 117 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_toolbar.scss: -------------------------------------------------------------------------------- 1 | @import "button"; 2 | 3 | 4 | /********* 5 | ! Toolbar 6 | **********/ 7 | 8 | @mixin toolbar($bg, $fg) { 9 | @include linear-gradient($bg); 10 | @include border($bg); 11 | 12 | padding: $spacing * 2; 13 | color: $fg; 14 | 15 | &:insensitive { 16 | @include linear-gradient(shade($bg, .9)); 17 | 18 | color: mix($fg, $bg, .5); 19 | } 20 | 21 | .title { 22 | font: bold; 23 | padding: 0 ($spacing * 2); 24 | } 25 | 26 | .subtitle { 27 | font: smaller; 28 | padding: 0 ($spacing * 2); 29 | } 30 | 31 | .button { @include button($bg, $fg); } 32 | 33 | .button.linked, .linked .button { @include linked_button($bg); } 34 | 35 | GtkComboBox, .button { 36 | padding: $spacing - 1px; 37 | 38 | &.text-button { padding: $spacing; } 39 | 40 | &.image-button { padding: ($spacing + 1px) ($spacing - 1px) ($spacing + 1px) $spacing; } 41 | } 42 | 43 | GtkSeparatorToolItem, .separator, .separator:insensitive { 44 | color: shade($bg, ($contrast + .1)); 45 | border-color: currentColor; 46 | 47 | -GtkWidget-window-dragging: true; 48 | } 49 | 50 | .menubar { -GtkToolbar-button-relief: normal; } 51 | } 52 | 53 | @include exports("toolbar") { 54 | .toolbar { 55 | @include toolbar($bg_color, $fg_color); 56 | 57 | border-style: none; 58 | 59 | &.inline-toolbar { 60 | background-image: none; 61 | background-color: transparent; 62 | } 63 | } 64 | 65 | .header-bar { 66 | @include toolbar($titlebar_bg_color, $titlebar_fg_color); 67 | 68 | border-width: 0 0 1px 0; 69 | border-style: solid; 70 | } 71 | 72 | .titlebar { 73 | @include linear-gradient($titlebar_bg_color); 74 | 75 | border-radius: $roundness $roundness 0 0; 76 | color: mix($titlebar_fg_color, $titlebar_bg_color, .1); 77 | 78 | &:backdrop { 79 | @include linear-gradient($titlebar_bg_color); 80 | 81 | color: mix($titlebar_fg_color, $titlebar_bg_color, .6); 82 | text-shadow: none; 83 | } 84 | 85 | &.default-decoration { 86 | border: none; 87 | box-shadow: none; 88 | } 89 | 90 | .tiled &, .maximized & { border-radius: 0; } 91 | 92 | .title { font: bold; } 93 | 94 | .titlebutton { 95 | padding: $spacing; 96 | border: none; 97 | background-image: none; 98 | background-color: transparent; 99 | color: mix($titlebar_fg_color, $titlebar_bg_color, .1); 100 | box-shadow: none; 101 | 102 | &:hover, &:hover:focus { 103 | background-image: none; 104 | background-color: transparent; 105 | color: $selected_bg_color_alt; 106 | box-shadow: none; 107 | } 108 | 109 | &:active, &:active:hover { 110 | background-image: none; 111 | background-color: transparent; 112 | color: shade($selected_bg_color_alt, .9); 113 | box-shadow: none; 114 | } 115 | 116 | &:backdrop { 117 | background: none; 118 | color: mix($titlebar_fg_color, $titlebar_bg_color, .6); 119 | icon-shadow: none; 120 | } 121 | } 122 | } 123 | } 124 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_view.scss: -------------------------------------------------------------------------------- 1 | /*************** 2 | ! Generic views 3 | ****************/ 4 | 5 | @include exports("view") { 6 | * { -GtkTextView-error-underline-color: $error_color; } 7 | 8 | .view { 9 | color: $text_color; 10 | background-color: $base_color; 11 | 12 | &:insensitive, &:insensitive:insensitive { 13 | background-color: shade($base_color, 0.9); 14 | color: mix($text_color, $base_color, 0.5); 15 | } 16 | 17 | &:selected, &:selected:focus { @extend %selected; } 18 | } 19 | 20 | .cell { 21 | border-width: 0; 22 | border-radius: 0; 23 | 24 | &:selected, &:selected:focus { 25 | background-color: $selected_bg_color; 26 | color: $selected_fg_color; 27 | } 28 | } 29 | 30 | row { 31 | &:selected { 32 | &, &:hover, &:focus { 33 | -GtkWidget-focus-padding: 1; 34 | -GtkWidget-focus-line-width: 0; 35 | 36 | border: none; 37 | background-color: $selected_bg_color; 38 | background-image: none; 39 | color: $selected_fg_color; 40 | } 41 | } 42 | } 43 | 44 | .content-view { 45 | &.view { 46 | background-color: $base_color; 47 | 48 | &:prelight { background-color: alpha($selected_bg_color, 0.6); } 49 | 50 | &:selected, &:active { background-color: $selected_bg_color; } 51 | 52 | &:insensitive { background-color: shade($base_color, 0.9); } 53 | 54 | &.check { 55 | &, &:active, &:prelight, &:insensitive, &:selected { background-color: transparent; } 56 | } 57 | } 58 | 59 | .subtitle { 60 | font: smaller; 61 | padding: 0 12px; 62 | } 63 | } 64 | 65 | GtkIconView { 66 | &.content-view.check { @extend .content-view.check; } 67 | 68 | &.view.cell { 69 | &:selected, &:selected:focus { 70 | border: none; 71 | border-radius: 2px; 72 | background-image: none; 73 | background-color: $selected_bg_color; 74 | color: $selected_fg_color; 75 | } 76 | } 77 | } 78 | 79 | .dim-label { 80 | &, &.view { color: alpha(currentColor, 0.5); } 81 | } 82 | 83 | .dnd { border: 1px solid $selected_bg_color; } 84 | 85 | .grip { background-color: transparent; } 86 | 87 | .arrow { color: alpha(currentColor, 0.7); } 88 | 89 | .rubberband { 90 | &, &.view, &.content-view.view { 91 | border: 1px solid $selected_bg_color; 92 | border-radius: 0; 93 | background-color: alpha($selected_bg_color, 0.3); 94 | } 95 | } 96 | 97 | GdMainIconView.content-view { -GdMainIconView-icon-size: 40; } 98 | 99 | /* this will get overridden by .view, needed by gedit line numbers */ 100 | GtkTextView { background-color: mix($bg_color, $base_color, 0.50); } 101 | 102 | GtkHTML { 103 | @extend .view; 104 | 105 | &:insensitive { background-color: shade($base_color, 0.9); } 106 | } 107 | 108 | GtkDrawingArea { background-color: transparent; } 109 | } 110 | 111 | /************ 112 | ! Treeview * 113 | *************/ 114 | 115 | @include exports("treeview") { 116 | GtkTreeView { 117 | -GtkTreeView-expander-size: 8; 118 | -GtkTreeView-vertical-separator: 0; 119 | 120 | outline-offset: -1px; 121 | 122 | &.dnd { border: 1px solid $selected_bg_color; } 123 | 124 | .entry { 125 | border-radius: 0; 126 | background-color: $base_color; 127 | background-image: none; 128 | } 129 | } 130 | } 131 | 132 | 133 | /*********** 134 | ! Separator 135 | ************/ 136 | 137 | @include exports("separator") { 138 | .view.separator, .separator { 139 | color: shade($bg_color, ($contrast + .1)); 140 | border: 1px solid currentColor; 141 | } 142 | } 143 | 144 | 145 | /********************* 146 | ! Column view headers 147 | **********************/ 148 | 149 | @include exports("columnheader") { 150 | column-header { 151 | .button { 152 | &, &:active { 153 | border-width: 0 1px 1px 0; 154 | border-radius: 0; 155 | } 156 | 157 | &, &:active, &:focus, &:active:focus { 158 | border-color: shade($base_color, 0.9); 159 | border-bottom-color: shade($base_color, 0.8); 160 | background-color: shade($base_color, 0.97); 161 | background-image: none; 162 | } 163 | 164 | &:hover, &:active:hover, &:hover:focus, &:active:hover:focus { 165 | border-color: shade($base_color, 0.9); 166 | border-bottom-color: shade($base_color, 0.8); 167 | background-color: shade($base_color, 0.99); 168 | background-image: none; 169 | } 170 | 171 | &:last-child .button { border-width: 0 0 1px 0; } 172 | } 173 | } 174 | } 175 | 176 | 177 | /********** 178 | ! Frames * 179 | ***********/ 180 | 181 | @include exports("frame") { 182 | .frame { 183 | border: 1px solid border_normal($bg_color); 184 | 185 | &.flat { border: none; } 186 | } 187 | 188 | /* avoid double borders when a viewport is packed into a GtkScrolledWindow */ 189 | GtkScrolledWindow GtkViewport.frame { border: none; } 190 | } 191 | 192 | -------------------------------------------------------------------------------- /gtk-3.0/scss/widgets/_window.scss: -------------------------------------------------------------------------------- 1 | /************** 2 | ! Window frame 3 | ***************/ 4 | 5 | @include exports("window") { 6 | %window { 7 | box-shadow: 0 19px 38px rgba(0,0,0,0.30), 0 15px 12px rgba(0,0,0,0.22), 8 | 0 0 0 1px $wm_border_focused; 9 | 10 | &:backdrop { 11 | box-shadow: 0 10px 20px rgba(0,0,0,0.19), 0 6px 6px rgba(0,0,0,0.23), 12 | 0 0 0 1px $wm_border_unfocused; 13 | } 14 | } 15 | 16 | .window-frame { 17 | @extend %window; 18 | 19 | border: none; 20 | border-radius: $roundness $roundness 0 0; 21 | 22 | /* this is used for the resize cursor area */ 23 | margin: $spacing * 3; 24 | 25 | &.tiled { border-radius: 0; } 26 | 27 | &.csd { 28 | &.popup { 29 | @extend %window; 30 | 31 | border-radius: 0; 32 | } 33 | 34 | &.tooltip { 35 | border-radius: $roundness; 36 | box-shadow: none; 37 | } 38 | 39 | &.message-dialog { 40 | @extend %window; 41 | 42 | border-radius: $roundness; 43 | } 44 | } 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /index.theme: -------------------------------------------------------------------------------- 1 | [Desktop Entry] 2 | Type=X-GNOME-Metatheme 3 | Name=Numix 4 | Comment=A modern flat theme 5 | Encoding=UTF-8 6 | 7 | [X-GNOME-Metatheme] 8 | GtkTheme=Numix 9 | MetacityTheme=Numix 10 | ButtonLayout=:minimize,maximize,close 11 | --------------------------------------------------------------------------------