ispmail-on-rails 0.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +19 -0
- data/.rspec +2 -0
- data/.travis.yml +4 -0
- data/Gemfile +61 -0
- data/LICENSE.txt +21 -0
- data/README.md +41 -0
- data/Rakefile +6 -0
- data/app/assets/images/.keep +0 -0
- data/app/assets/javascripts/application.js +25 -0
- data/app/assets/javascripts/virtual_aliases.coffee +3 -0
- data/app/assets/javascripts/virtual_domains.coffee +3 -0
- data/app/assets/javascripts/virtual_users.coffee +3 -0
- data/app/assets/stylesheets/_settings.scss +566 -0
- data/app/assets/stylesheets/application.css +21 -0
- data/app/assets/stylesheets/clearance.scss +6 -0
- data/app/assets/stylesheets/foundation_and_overrides.scss +51 -0
- data/app/assets/stylesheets/virtual_aliases.scss +3 -0
- data/app/assets/stylesheets/virtual_domains.scss +3 -0
- data/app/assets/stylesheets/virtual_users.scss +3 -0
- data/app/controllers/api/base_controller.rb +90 -0
- data/app/controllers/api/virtual_aliases_controller.rb +12 -0
- data/app/controllers/api/virtual_domains_controller.rb +15 -0
- data/app/controllers/api/virtual_users_controller.rb +15 -0
- data/app/controllers/application_controller.rb +9 -0
- data/app/controllers/concerns/.keep +0 -0
- data/app/controllers/virtual_aliases_controller.rb +6 -0
- data/app/controllers/virtual_domains_controller.rb +6 -0
- data/app/controllers/virtual_users_controller.rb +6 -0
- data/app/helpers/application_helper.rb +33 -0
- data/app/helpers/virtual_aliases_helper.rb +2 -0
- data/app/helpers/virtual_domains_helper.rb +2 -0
- data/app/helpers/virtual_users_helper.rb +2 -0
- data/app/mailers/.keep +0 -0
- data/app/models/.keep +0 -0
- data/app/models/concerns/.keep +0 -0
- data/app/models/user.rb +3 -0
- data/app/models/virtual_alias.rb +16 -0
- data/app/models/virtual_domain.rb +22 -0
- data/app/models/virtual_user.rb +35 -0
- data/app/validators/domain_name_validator.rb +21 -0
- data/app/validators/password_validator.rb +10 -0
- data/app/views/api/virtual_aliases/index.json.jbuilder +6 -0
- data/app/views/api/virtual_aliases/show.json.jbuilder +6 -0
- data/app/views/api/virtual_domains/index.json.jbuilder +4 -0
- data/app/views/api/virtual_domains/show.json.jbuilder +4 -0
- data/app/views/api/virtual_users/index.json.jbuilder +5 -0
- data/app/views/api/virtual_users/show.json.jbuilder +5 -0
- data/app/views/application/_heading.html.erb +12 -0
- data/app/views/clearance_mailer/change_password.html.erb +8 -0
- data/app/views/clearance_mailer/change_password.text.erb +5 -0
- data/app/views/layouts/application.html.erb +41 -0
- data/app/views/passwords/create.html.erb +3 -0
- data/app/views/passwords/edit.html.erb +18 -0
- data/app/views/passwords/new.html.erb +16 -0
- data/app/views/sessions/_form.html.erb +22 -0
- data/app/views/sessions/new.html.erb +6 -0
- data/app/views/users/_form.html.erb +9 -0
- data/app/views/users/new.html.erb +15 -0
- data/app/views/virtual_aliases/index.html.erb +58 -0
- data/app/views/virtual_domains/index.html.erb +56 -0
- data/app/views/virtual_users/_password_form.html.erb +23 -0
- data/app/views/virtual_users/index.html.erb +57 -0
- data/bin/bundle +3 -0
- data/bin/console +14 -0
- data/bin/rails +9 -0
- data/bin/rake +9 -0
- data/bin/setup +29 -0
- data/bin/spring +15 -0
- data/config.ru +4 -0
- data/config/application.rb +30 -0
- data/config/boot.rb +3 -0
- data/config/database.yml +31 -0
- data/config/environment.rb +5 -0
- data/config/environments/development.rb +42 -0
- data/config/environments/production.rb +82 -0
- data/config/environments/test.rb +43 -0
- data/config/initializers/assets.rb +11 -0
- data/config/initializers/backtrace_silencers.rb +7 -0
- data/config/initializers/clearance.rb +4 -0
- data/config/initializers/cookies_serializer.rb +3 -0
- data/config/initializers/filter_parameter_logging.rb +4 -0
- data/config/initializers/inflections.rb +16 -0
- data/config/initializers/mime_types.rb +4 -0
- data/config/initializers/session_store.rb +3 -0
- data/config/initializers/wrap_parameters.rb +14 -0
- data/config/locales/clearance.en.yml +59 -0
- data/config/locales/en.yml +23 -0
- data/config/routes.rb +74 -0
- data/config/secrets.yml +22 -0
- data/db/development.sqlite3 +0 -0
- data/db/migrate/20160321130230_create_virtual_domains.rb +13 -0
- data/db/migrate/20160321130250_create_virtual_users.rb +16 -0
- data/db/migrate/20160321130353_create_virtual_aliases.rb +15 -0
- data/db/migrate/20160321133546_create_users.rb +14 -0
- data/db/schema.rb +59 -0
- data/db/seeds.rb +8 -0
- data/ispmail-on-rails.gemspec +25 -0
- data/lib/assets/.keep +0 -0
- data/lib/ispmail/on/rails.rb +9 -0
- data/lib/ispmail/on/rails/version.rb +7 -0
- data/lib/tasks/.keep +0 -0
- data/log/.keep +0 -0
- data/public/404.html +67 -0
- data/public/422.html +67 -0
- data/public/500.html +66 -0
- data/public/favicon.ico +0 -0
- data/public/robots.txt +5 -0
- data/tmp/.keep +0 -0
- data/vendor/assets/javascripts/.keep +0 -0
- data/vendor/assets/stylesheets/.keep +0 -0
- metadata +198 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 741b78260a616af74126e6df7bfa8317560b1b8f
|
4
|
+
data.tar.gz: 3fa4a84bcc9c11553ab77872f83aaaf75c405acf
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: f0134b0f185551f4cd0938178f437709c229e00f8a86b1fe04f7e2a8cc1dfc138f1fd00dc9de89fbd4cfe19c1ce39ce11fbacee2559056fc52677e859e61fe60
|
7
|
+
data.tar.gz: 578a126cf4421566b59dfe6f61e0aba8487b93cb0287b688c883565b4ede0b1e46b90d518f058cd6601fcf901b72de1b58fa24ab9988bcc0dd3e09d95c94d3fd
|
data/.gitignore
ADDED
@@ -0,0 +1,19 @@
|
|
1
|
+
# See https://help.github.com/articles/ignoring-files for more about ignoring files.
|
2
|
+
/.bundle
|
3
|
+
/.yardoc
|
4
|
+
/Gemfile.lock
|
5
|
+
/_yardoc/
|
6
|
+
/coverage/
|
7
|
+
/doc/
|
8
|
+
/pkg/
|
9
|
+
/spec/reports/
|
10
|
+
|
11
|
+
# Ignore all logfiles and tempfiles.
|
12
|
+
/log/*
|
13
|
+
!/log/.keep
|
14
|
+
/tmp/*
|
15
|
+
!/tmp/.keep
|
16
|
+
|
17
|
+
# Ignore .env environment variables
|
18
|
+
/.env
|
19
|
+
/.byebug_history
|
data/.rspec
ADDED
data/.travis.yml
ADDED
data/Gemfile
ADDED
@@ -0,0 +1,61 @@
|
|
1
|
+
source 'https://rubygems.org'
|
2
|
+
|
3
|
+
|
4
|
+
# Bundle edge Rails instead: gem 'rails', github: 'rails/rails'
|
5
|
+
gem 'rails', '4.2.6'
|
6
|
+
# Use mysql as the database for Active Record
|
7
|
+
gem 'mysql2'
|
8
|
+
# Use SCSS for stylesheets
|
9
|
+
gem 'sass-rails', '~> 5.0'
|
10
|
+
# Use Uglifier as compressor for JavaScript assets
|
11
|
+
gem 'uglifier', '>= 1.3.0'
|
12
|
+
# Use CoffeeScript for .coffee assets and views
|
13
|
+
gem 'coffee-rails', '~> 4.1.0'
|
14
|
+
# See https://github.com/rails/execjs#readme for more supported runtimes
|
15
|
+
gem 'therubyracer', platforms: :ruby
|
16
|
+
|
17
|
+
# Use jquery as the JavaScript library
|
18
|
+
gem 'jquery-rails'
|
19
|
+
# Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks
|
20
|
+
gem 'turbolinks'
|
21
|
+
# Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
|
22
|
+
gem 'jbuilder', '~> 2.0'
|
23
|
+
# bundle exec rake doc:rails generates the API under doc/api.
|
24
|
+
gem 'sdoc', '~> 0.4.0', group: :doc
|
25
|
+
|
26
|
+
# Use ActiveModel has_secure_password
|
27
|
+
# gem 'bcrypt', '~> 3.1.7'
|
28
|
+
|
29
|
+
# Use Unicorn as the app server
|
30
|
+
# gem 'unicorn'
|
31
|
+
|
32
|
+
# Use Capistrano for deployment
|
33
|
+
# gem 'capistrano-rails', group: :development
|
34
|
+
|
35
|
+
group :development, :test do
|
36
|
+
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
|
37
|
+
gem 'byebug'
|
38
|
+
end
|
39
|
+
|
40
|
+
group :development do
|
41
|
+
# Access an IRB console on exception pages or by using <%= console %> in views
|
42
|
+
gem 'web-console', '~> 2.0'
|
43
|
+
|
44
|
+
# Spring speeds up development by keeping your application running in the background. Read more: https://github.com/rails/spring
|
45
|
+
gem 'spring'
|
46
|
+
end
|
47
|
+
|
48
|
+
# Authentication
|
49
|
+
gem 'clearance'
|
50
|
+
|
51
|
+
# Use environment variables for databases
|
52
|
+
gem 'dotenv-rails'
|
53
|
+
|
54
|
+
# Use ZURB Foundation CSS framework
|
55
|
+
gem 'foundation-rails'
|
56
|
+
|
57
|
+
# Use UnixCrypt to set VirtualUser passwords
|
58
|
+
gem 'unix-crypt'
|
59
|
+
|
60
|
+
# Look up TLD from IANA
|
61
|
+
gem 'iana-data', require: 'iana'
|
data/LICENSE.txt
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
The MIT License (MIT)
|
2
|
+
|
3
|
+
Copyright (c) 2016 Runar Ingebrigtsen
|
4
|
+
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
7
|
+
in the Software without restriction, including without limitation the rights
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
10
|
+
furnished to do so, subject to the following conditions:
|
11
|
+
|
12
|
+
The above copyright notice and this permission notice shall be included in
|
13
|
+
all copies or substantial portions of the Software.
|
14
|
+
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
21
|
+
THE SOFTWARE.
|
data/README.md
ADDED
@@ -0,0 +1,41 @@
|
|
1
|
+
# Ispmail::On::Rails
|
2
|
+
|
3
|
+
This is a Ruby on Rails application to manage ISPMAIL:
|
4
|
+
https://workaround.org/ispmail/jessie
|
5
|
+
https://workaround.org/ispmail/jessie/ansible
|
6
|
+
|
7
|
+
## Installation
|
8
|
+
|
9
|
+
Add this line to your application's Gemfile:
|
10
|
+
|
11
|
+
```ruby
|
12
|
+
gem 'ispmail-on-rails'
|
13
|
+
```
|
14
|
+
|
15
|
+
And then execute:
|
16
|
+
|
17
|
+
$ bundle
|
18
|
+
|
19
|
+
Or install it yourself as:
|
20
|
+
|
21
|
+
$ gem install ispmail-on-rails
|
22
|
+
|
23
|
+
## Usage
|
24
|
+
|
25
|
+
TODO: Write usage instructions here
|
26
|
+
|
27
|
+
## Development
|
28
|
+
|
29
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
30
|
+
|
31
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
32
|
+
|
33
|
+
## Contributing
|
34
|
+
|
35
|
+
Bug reports and pull requests are welcome on GitHub at https://github.com/ringe/ispmail-on-rails.
|
36
|
+
|
37
|
+
|
38
|
+
## License
|
39
|
+
|
40
|
+
The gem is available as open source under the terms of the [MIT License](http://opensource.org/licenses/MIT).
|
41
|
+
|
data/Rakefile
ADDED
File without changes
|
@@ -0,0 +1,25 @@
|
|
1
|
+
// This is a manifest file that'll be compiled into application.js, which will include all the files
|
2
|
+
// listed below.
|
3
|
+
//
|
4
|
+
// Any JavaScript/Coffee file within this directory, lib/assets/javascripts, vendor/assets/javascripts,
|
5
|
+
// or any plugin's vendor/assets/javascripts directory can be referenced here using a relative path.
|
6
|
+
//
|
7
|
+
// It's not advisable to add code directly here, but if you do, it'll appear at the bottom of the
|
8
|
+
// compiled file.
|
9
|
+
//
|
10
|
+
// Read Sprockets README (https://github.com/rails/sprockets#sprockets-directives) for details
|
11
|
+
// about supported directives.
|
12
|
+
//
|
13
|
+
//= require jquery
|
14
|
+
//= require jquery_ujs
|
15
|
+
//= require foundation
|
16
|
+
//= require turbolinks
|
17
|
+
//= require_tree .
|
18
|
+
|
19
|
+
$(document).on('page:change',function(){
|
20
|
+
$(document).foundation();
|
21
|
+
|
22
|
+
if ($('#messages')[0].attributes["data-show-flash"].value == "true") {
|
23
|
+
$('#messages').foundation('open');
|
24
|
+
}
|
25
|
+
});
|
@@ -0,0 +1,566 @@
|
|
1
|
+
// Foundation for Sites Settings
|
2
|
+
// -----------------------------
|
3
|
+
//
|
4
|
+
// Table of Contents:
|
5
|
+
//
|
6
|
+
// 1. Global
|
7
|
+
// 2. Breakpoints
|
8
|
+
// 3. The Grid
|
9
|
+
// 4. Base Typography
|
10
|
+
// 5. Typography Helpers
|
11
|
+
// 6. Abide
|
12
|
+
// 7. Accordion
|
13
|
+
// 8. Accordion Menu
|
14
|
+
// 9. Badge
|
15
|
+
// 10. Breadcrumbs
|
16
|
+
// 11. Button
|
17
|
+
// 12. Button Group
|
18
|
+
// 13. Callout
|
19
|
+
// 14. Close Button
|
20
|
+
// 15. Drilldown
|
21
|
+
// 16. Dropdown
|
22
|
+
// 17. Dropdown Menu
|
23
|
+
// 18. Flex Video
|
24
|
+
// 19. Forms
|
25
|
+
// 20. Label
|
26
|
+
// 21. Media Object
|
27
|
+
// 22. Menu
|
28
|
+
// 23. Meter
|
29
|
+
// 24. Off-canvas
|
30
|
+
// 25. Orbit
|
31
|
+
// 26. Pagination
|
32
|
+
// 27. Progress Bar
|
33
|
+
// 28. Reveal
|
34
|
+
// 29. Slider
|
35
|
+
// 30. Switch
|
36
|
+
// 31. Table
|
37
|
+
// 32. Tabs
|
38
|
+
// 33. Thumbnail
|
39
|
+
// 34. Title Bar
|
40
|
+
// 35. Tooltip
|
41
|
+
// 36. Top Bar
|
42
|
+
|
43
|
+
@import 'util/util';
|
44
|
+
|
45
|
+
// 1. Global
|
46
|
+
// ---------
|
47
|
+
|
48
|
+
$global-font-size: 100%;
|
49
|
+
$global-width: rem-calc(1200);
|
50
|
+
$global-lineheight: 1.5;
|
51
|
+
$foundation-palette: (
|
52
|
+
primary: #2199e8,
|
53
|
+
secondary: #777,
|
54
|
+
success: #3adb76,
|
55
|
+
warning: #ffae00,
|
56
|
+
alert: #ec5840,
|
57
|
+
);
|
58
|
+
$light-gray: #e6e6e6;
|
59
|
+
$medium-gray: #cacaca;
|
60
|
+
$dark-gray: #8a8a8a;
|
61
|
+
$black: #0a0a0a;
|
62
|
+
$white: #fefefe;
|
63
|
+
$body-background: $white;
|
64
|
+
$body-font-color: $black;
|
65
|
+
$body-font-family: 'Helvetica Neue', Helvetica, Roboto, Arial, sans-serif;
|
66
|
+
$body-antialiased: true;
|
67
|
+
$global-margin: 1rem;
|
68
|
+
$global-padding: 1rem;
|
69
|
+
$global-weight-normal: normal;
|
70
|
+
$global-weight-bold: bold;
|
71
|
+
$global-radius: 0;
|
72
|
+
$global-text-direction: ltr;
|
73
|
+
$global-flexbox: false;
|
74
|
+
$print-transparent-backgrounds: true;
|
75
|
+
|
76
|
+
@include add-foundation-colors;
|
77
|
+
|
78
|
+
// 2. Breakpoints
|
79
|
+
// --------------
|
80
|
+
|
81
|
+
$breakpoints: (
|
82
|
+
small: 0,
|
83
|
+
medium: 640px,
|
84
|
+
large: 1024px,
|
85
|
+
xlarge: 1200px,
|
86
|
+
xxlarge: 1440px,
|
87
|
+
);
|
88
|
+
$breakpoint-classes: (small medium large);
|
89
|
+
|
90
|
+
// 3. The Grid
|
91
|
+
// -----------
|
92
|
+
|
93
|
+
$grid-row-width: $global-width;
|
94
|
+
$grid-column-count: 12;
|
95
|
+
$grid-column-gutter: (
|
96
|
+
small: 20px,
|
97
|
+
medium: 30px,
|
98
|
+
);
|
99
|
+
$grid-column-align-edge: true;
|
100
|
+
$block-grid-max: 8;
|
101
|
+
|
102
|
+
// 4. Base Typography
|
103
|
+
// ------------------
|
104
|
+
|
105
|
+
$header-font-family: $body-font-family;
|
106
|
+
$header-font-weight: $global-weight-normal;
|
107
|
+
$header-font-style: normal;
|
108
|
+
$font-family-monospace: Consolas, 'Liberation Mono', Courier, monospace;
|
109
|
+
$header-sizes: (
|
110
|
+
small: (
|
111
|
+
'h1': 24,
|
112
|
+
'h2': 20,
|
113
|
+
'h3': 19,
|
114
|
+
'h4': 18,
|
115
|
+
'h5': 17,
|
116
|
+
'h6': 16,
|
117
|
+
),
|
118
|
+
medium: (
|
119
|
+
'h1': 48,
|
120
|
+
'h2': 40,
|
121
|
+
'h3': 31,
|
122
|
+
'h4': 25,
|
123
|
+
'h5': 20,
|
124
|
+
'h6': 16,
|
125
|
+
),
|
126
|
+
);
|
127
|
+
$header-color: inherit;
|
128
|
+
$header-lineheight: 1.4;
|
129
|
+
$header-margin-bottom: 0.5rem;
|
130
|
+
$header-text-rendering: optimizeLegibility;
|
131
|
+
$small-font-size: 80%;
|
132
|
+
$header-small-font-color: $medium-gray;
|
133
|
+
$paragraph-lineheight: 1.6;
|
134
|
+
$paragraph-margin-bottom: 1rem;
|
135
|
+
$paragraph-text-rendering: optimizeLegibility;
|
136
|
+
$code-color: $black;
|
137
|
+
$code-font-family: $font-family-monospace;
|
138
|
+
$code-font-weight: $global-weight-normal;
|
139
|
+
$code-background: $light-gray;
|
140
|
+
$code-border: 1px solid $medium-gray;
|
141
|
+
$code-padding: rem-calc(2 5 1);
|
142
|
+
$anchor-color: $primary-color;
|
143
|
+
$anchor-color-hover: scale-color($anchor-color, $lightness: -14%);
|
144
|
+
$anchor-text-decoration: none;
|
145
|
+
$anchor-text-decoration-hover: none;
|
146
|
+
$hr-width: $global-width;
|
147
|
+
$hr-border: 1px solid $medium-gray;
|
148
|
+
$hr-margin: rem-calc(20) auto;
|
149
|
+
$list-lineheight: $paragraph-lineheight;
|
150
|
+
$list-margin-bottom: $paragraph-margin-bottom;
|
151
|
+
$list-style-type: disc;
|
152
|
+
$list-style-position: outside;
|
153
|
+
$list-side-margin: 1.25rem;
|
154
|
+
$list-nested-side-margin: 1.25rem;
|
155
|
+
$defnlist-margin-bottom: 1rem;
|
156
|
+
$defnlist-term-weight: $global-weight-bold;
|
157
|
+
$defnlist-term-margin-bottom: 0.3rem;
|
158
|
+
$blockquote-color: $dark-gray;
|
159
|
+
$blockquote-padding: rem-calc(9 20 0 19);
|
160
|
+
$blockquote-border: 1px solid $medium-gray;
|
161
|
+
$cite-font-size: rem-calc(13);
|
162
|
+
$cite-color: $dark-gray;
|
163
|
+
$keystroke-font: $font-family-monospace;
|
164
|
+
$keystroke-color: $black;
|
165
|
+
$keystroke-background: $light-gray;
|
166
|
+
$keystroke-padding: rem-calc(2 4 0);
|
167
|
+
$keystroke-radius: $global-radius;
|
168
|
+
$abbr-underline: 1px dotted $black;
|
169
|
+
|
170
|
+
// 5. Typography Helpers
|
171
|
+
// ---------------------
|
172
|
+
|
173
|
+
$lead-font-size: $global-font-size * 1.25;
|
174
|
+
$lead-lineheight: 1.6;
|
175
|
+
$subheader-lineheight: 1.4;
|
176
|
+
$subheader-color: $dark-gray;
|
177
|
+
$subheader-font-weight: $global-weight-normal;
|
178
|
+
$subheader-margin-top: 0.2rem;
|
179
|
+
$subheader-margin-bottom: 0.5rem;
|
180
|
+
$stat-font-size: 2.5rem;
|
181
|
+
|
182
|
+
// 6. Abide
|
183
|
+
// --------
|
184
|
+
|
185
|
+
$abide-inputs: true;
|
186
|
+
$abide-labels: true;
|
187
|
+
$input-background-invalid: map-get($foundation-palette, alert);
|
188
|
+
$form-label-color-invalid: map-get($foundation-palette, alert);
|
189
|
+
$input-error-color: map-get($foundation-palette, alert);
|
190
|
+
$input-error-font-size: rem-calc(12);
|
191
|
+
$input-error-font-weight: $global-weight-bold;
|
192
|
+
|
193
|
+
// 7. Accordion
|
194
|
+
// ------------
|
195
|
+
|
196
|
+
$accordion-background: $white;
|
197
|
+
$accordion-plusminus: true;
|
198
|
+
$accordion-item-color: foreground($accordion-background, $primary-color);
|
199
|
+
$accordion-item-background-hover: $light-gray;
|
200
|
+
$accordion-item-padding: 1.25rem 1rem;
|
201
|
+
$accordion-content-background: $white;
|
202
|
+
$accordion-content-border: 1px solid $light-gray;
|
203
|
+
$accordion-content-color: foreground($accordion-background, $primary-color);
|
204
|
+
$accordion-content-padding: 1rem;
|
205
|
+
|
206
|
+
// 8. Accordion Menu
|
207
|
+
// -----------------
|
208
|
+
|
209
|
+
$accordionmenu-arrows: true;
|
210
|
+
$accordionmenu-arrow-color: $primary-color;
|
211
|
+
|
212
|
+
// 9. Badge
|
213
|
+
// --------
|
214
|
+
|
215
|
+
$badge-background: $primary-color;
|
216
|
+
$badge-color: foreground($badge-background);
|
217
|
+
$badge-padding: 0.3em;
|
218
|
+
$badge-minwidth: 2.1em;
|
219
|
+
$badge-font-size: 0.6rem;
|
220
|
+
|
221
|
+
// 10. Breadcrumbs
|
222
|
+
// ---------------
|
223
|
+
|
224
|
+
$breadcrumbs-margin: 0 0 $global-margin 0;
|
225
|
+
$breadcrumbs-item-font-size: rem-calc(11);
|
226
|
+
$breadcrumbs-item-color: $primary-color;
|
227
|
+
$breadcrumbs-item-color-current: $black;
|
228
|
+
$breadcrumbs-item-color-disabled: $medium-gray;
|
229
|
+
$breadcrumbs-item-margin: 0.75rem;
|
230
|
+
$breadcrumbs-item-uppercase: true;
|
231
|
+
$breadcrumbs-item-slash: true;
|
232
|
+
|
233
|
+
// 11. Button
|
234
|
+
// ----------
|
235
|
+
|
236
|
+
$button-padding: 0.85em 1em;
|
237
|
+
$button-margin: 0 0 $global-margin 0;
|
238
|
+
$button-fill: solid;
|
239
|
+
$button-background: $primary-color;
|
240
|
+
$button-background-hover: scale-color($button-background, $lightness: -15%);
|
241
|
+
$button-color: $white;
|
242
|
+
$button-color-alt: $black;
|
243
|
+
$button-radius: $global-radius;
|
244
|
+
$button-sizes: (
|
245
|
+
tiny: 0.6rem,
|
246
|
+
small: 0.75rem,
|
247
|
+
default: 0.9rem,
|
248
|
+
large: 1.25rem,
|
249
|
+
);
|
250
|
+
$button-opacity-disabled: 0.25;
|
251
|
+
|
252
|
+
// 12. Button Group
|
253
|
+
// ----------------
|
254
|
+
|
255
|
+
$buttongroup-margin: 1rem;
|
256
|
+
$buttongroup-spacing: 1px;
|
257
|
+
$buttongroup-child-selector: '.button';
|
258
|
+
$buttongroup-expand-max: 6;
|
259
|
+
|
260
|
+
// 13. Callout
|
261
|
+
// -----------
|
262
|
+
|
263
|
+
$callout-background: $white;
|
264
|
+
$callout-background-fade: 85%;
|
265
|
+
$callout-border: 1px solid rgba($black, 0.25);
|
266
|
+
$callout-margin: 0 0 1rem 0;
|
267
|
+
$callout-padding: 1rem;
|
268
|
+
$callout-font-color: $body-font-color;
|
269
|
+
$callout-font-color-alt: $body-background;
|
270
|
+
$callout-radius: $global-radius;
|
271
|
+
$callout-link-tint: 30%;
|
272
|
+
|
273
|
+
// 14. Close Button
|
274
|
+
// ----------------
|
275
|
+
|
276
|
+
$closebutton-position: right top;
|
277
|
+
$closebutton-offset-horizontal: 1rem;
|
278
|
+
$closebutton-offset-vertical: 0.5rem;
|
279
|
+
$closebutton-size: 2em;
|
280
|
+
$closebutton-lineheight: 1;
|
281
|
+
$closebutton-color: $dark-gray;
|
282
|
+
$closebutton-color-hover: $black;
|
283
|
+
|
284
|
+
// 15. Drilldown
|
285
|
+
// -------------
|
286
|
+
|
287
|
+
$drilldown-transition: transform 0.15s linear;
|
288
|
+
$drilldown-arrows: true;
|
289
|
+
$drilldown-arrow-color: $primary-color;
|
290
|
+
$drilldown-background: $white;
|
291
|
+
|
292
|
+
// 16. Dropdown
|
293
|
+
// ------------
|
294
|
+
|
295
|
+
$dropdown-padding: 1rem;
|
296
|
+
$dropdown-border: 1px solid $medium-gray;
|
297
|
+
$dropdown-font-size: 1rem;
|
298
|
+
$dropdown-width: 300px;
|
299
|
+
$dropdown-radius: $global-radius;
|
300
|
+
$dropdown-sizes: (
|
301
|
+
tiny: 100px,
|
302
|
+
small: 200px,
|
303
|
+
large: 400px,
|
304
|
+
);
|
305
|
+
|
306
|
+
// 17. Dropdown Menu
|
307
|
+
// -----------------
|
308
|
+
|
309
|
+
$dropdownmenu-arrows: true;
|
310
|
+
$dropdownmenu-arrow-color: $anchor-color;
|
311
|
+
$dropdownmenu-min-width: 200px;
|
312
|
+
$dropdownmenu-background: $white;
|
313
|
+
$dropdownmenu-border: 1px solid $medium-gray;
|
314
|
+
|
315
|
+
// 18. Flex Video
|
316
|
+
// --------------
|
317
|
+
|
318
|
+
$flexvideo-margin-bottom: rem-calc(16);
|
319
|
+
$flexvideo-ratio: 4 by 3;
|
320
|
+
$flexvideo-ratio-widescreen: 16 by 9;
|
321
|
+
|
322
|
+
// 19. Forms
|
323
|
+
// ---------
|
324
|
+
|
325
|
+
$fieldset-border: 1px solid $medium-gray;
|
326
|
+
$fieldset-padding: rem-calc(20);
|
327
|
+
$fieldset-margin: rem-calc(18 0);
|
328
|
+
$legend-padding: rem-calc(0 3);
|
329
|
+
$form-spacing: rem-calc(16);
|
330
|
+
$helptext-color: $black;
|
331
|
+
$helptext-font-size: rem-calc(13);
|
332
|
+
$helptext-font-style: italic;
|
333
|
+
$input-prefix-color: $black;
|
334
|
+
$input-prefix-background: $light-gray;
|
335
|
+
$input-prefix-border: 1px solid $medium-gray;
|
336
|
+
$input-prefix-padding: 1rem;
|
337
|
+
$form-label-color: $black;
|
338
|
+
$form-label-font-size: rem-calc(14);
|
339
|
+
$form-label-font-weight: $global-weight-normal;
|
340
|
+
$form-label-line-height: 1.8;
|
341
|
+
$select-background: $white;
|
342
|
+
$select-triangle-color: $dark-gray;
|
343
|
+
$select-radius: $global-radius;
|
344
|
+
$input-color: $black;
|
345
|
+
$input-placeholder-color: $medium-gray;
|
346
|
+
$input-font-family: inherit;
|
347
|
+
$input-font-size: rem-calc(16);
|
348
|
+
$input-background: $white;
|
349
|
+
$input-background-focus: $white;
|
350
|
+
$input-background-disabled: $light-gray;
|
351
|
+
$input-border: 1px solid $medium-gray;
|
352
|
+
$input-border-focus: 1px solid $dark-gray;
|
353
|
+
$input-shadow: inset 0 1px 2px rgba($black, 0.1);
|
354
|
+
$input-shadow-focus: 0 0 5px $medium-gray;
|
355
|
+
$input-cursor-disabled: default;
|
356
|
+
$input-transition: box-shadow 0.5s, border-color 0.25s ease-in-out;
|
357
|
+
$input-number-spinners: true;
|
358
|
+
$input-radius: $global-radius;
|
359
|
+
|
360
|
+
// 20. Label
|
361
|
+
// ---------
|
362
|
+
|
363
|
+
$label-background: $primary-color;
|
364
|
+
$label-color: foreground($label-background);
|
365
|
+
$label-font-size: 0.8rem;
|
366
|
+
$label-padding: 0.33333rem 0.5rem;
|
367
|
+
$label-radius: $global-radius;
|
368
|
+
|
369
|
+
// 21. Media Object
|
370
|
+
// ----------------
|
371
|
+
|
372
|
+
$mediaobject-margin-bottom: $global-margin;
|
373
|
+
$mediaobject-section-padding: $global-padding;
|
374
|
+
$mediaobject-image-width-stacked: 100%;
|
375
|
+
|
376
|
+
// 22. Menu
|
377
|
+
// --------
|
378
|
+
|
379
|
+
$menu-margin: 0;
|
380
|
+
$menu-margin-nested: 1rem;
|
381
|
+
$menu-item-padding: 0.7rem 1rem;
|
382
|
+
$menu-item-color-active: $white;
|
383
|
+
$menu-item-background-active: map-get($foundation-palette, primary);
|
384
|
+
$menu-icon-spacing: 0.25rem;
|
385
|
+
|
386
|
+
// 23. Meter
|
387
|
+
// ---------
|
388
|
+
|
389
|
+
$meter-height: 1rem;
|
390
|
+
$meter-radius: $global-radius;
|
391
|
+
$meter-background: $medium-gray;
|
392
|
+
$meter-fill-good: $success-color;
|
393
|
+
$meter-fill-medium: $warning-color;
|
394
|
+
$meter-fill-bad: $alert-color;
|
395
|
+
|
396
|
+
// 24. Off-canvas
|
397
|
+
// --------------
|
398
|
+
|
399
|
+
$offcanvas-size: 250px;
|
400
|
+
$offcanvas-background: $light-gray;
|
401
|
+
$offcanvas-zindex: -1;
|
402
|
+
$offcanvas-transition-length: 0.5s;
|
403
|
+
$offcanvas-transition-timing: ease;
|
404
|
+
$offcanvas-fixed-reveal: true;
|
405
|
+
$offcanvas-exit-background: rgba($white, 0.25);
|
406
|
+
$maincontent-class: 'off-canvas-content';
|
407
|
+
$maincontent-shadow: 0 0 10px rgba($black, 0.5);
|
408
|
+
|
409
|
+
// 25. Orbit
|
410
|
+
// ---------
|
411
|
+
|
412
|
+
$orbit-bullet-background: $medium-gray;
|
413
|
+
$orbit-bullet-background-active: $dark-gray;
|
414
|
+
$orbit-bullet-diameter: 1.2rem;
|
415
|
+
$orbit-bullet-margin: 0.1rem;
|
416
|
+
$orbit-bullet-margin-top: 0.8rem;
|
417
|
+
$orbit-bullet-margin-bottom: 0.8rem;
|
418
|
+
$orbit-caption-background: rgba($black, 0.5);
|
419
|
+
$orbit-caption-padding: 1rem;
|
420
|
+
$orbit-control-background-hover: rgba($black, 0.5);
|
421
|
+
$orbit-control-padding: 1rem;
|
422
|
+
$orbit-control-zindex: 10;
|
423
|
+
|
424
|
+
// 26. Pagination
|
425
|
+
// --------------
|
426
|
+
|
427
|
+
$pagination-font-size: rem-calc(14);
|
428
|
+
$pagination-margin-bottom: $global-margin;
|
429
|
+
$pagination-item-color: $black;
|
430
|
+
$pagination-item-padding: rem-calc(3 10);
|
431
|
+
$pagination-item-spacing: rem-calc(1);
|
432
|
+
$pagination-radius: $global-radius;
|
433
|
+
$pagination-item-background-hover: $light-gray;
|
434
|
+
$pagination-item-background-current: $primary-color;
|
435
|
+
$pagination-item-color-current: foreground($pagination-item-background-current);
|
436
|
+
$pagination-item-color-disabled: $medium-gray;
|
437
|
+
$pagination-ellipsis-color: $black;
|
438
|
+
$pagination-mobile-items: false;
|
439
|
+
$pagination-arrows: true;
|
440
|
+
|
441
|
+
// 27. Progress Bar
|
442
|
+
// ----------------
|
443
|
+
|
444
|
+
$progress-height: 1rem;
|
445
|
+
$progress-background: $medium-gray;
|
446
|
+
$progress-margin-bottom: $global-margin;
|
447
|
+
$progress-meter-background: $primary-color;
|
448
|
+
$progress-radius: $global-radius;
|
449
|
+
|
450
|
+
// 28. Reveal
|
451
|
+
// ----------
|
452
|
+
|
453
|
+
$reveal-background: $white;
|
454
|
+
$reveal-width: 600px;
|
455
|
+
$reveal-max-width: $global-width;
|
456
|
+
$reveal-padding: $global-padding;
|
457
|
+
$reveal-border: 1px solid $medium-gray;
|
458
|
+
$reveal-radius: $global-radius;
|
459
|
+
$reveal-zindex: 1005;
|
460
|
+
$reveal-overlay-background: rgba($black, 0.45);
|
461
|
+
|
462
|
+
// 29. Slider
|
463
|
+
// ----------
|
464
|
+
|
465
|
+
$slider-width-vertical: 0.5rem;
|
466
|
+
$slider-transition: all 0.2s ease-in-out;
|
467
|
+
$slider-height: 0.5rem;
|
468
|
+
$slider-background: $light-gray;
|
469
|
+
$slider-fill-background: $medium-gray;
|
470
|
+
$slider-handle-height: 1.4rem;
|
471
|
+
$slider-handle-width: 1.4rem;
|
472
|
+
$slider-handle-background: $primary-color;
|
473
|
+
$slider-opacity-disabled: 0.25;
|
474
|
+
$slider-radius: $global-radius;
|
475
|
+
|
476
|
+
// 30. Switch
|
477
|
+
// ----------
|
478
|
+
|
479
|
+
$switch-background: $medium-gray;
|
480
|
+
$switch-background-active: $primary-color;
|
481
|
+
$switch-height: 2rem;
|
482
|
+
$switch-height-tiny: 1.5rem;
|
483
|
+
$switch-height-small: 1.75rem;
|
484
|
+
$switch-height-large: 2.5rem;
|
485
|
+
$switch-radius: $global-radius;
|
486
|
+
$switch-margin: $global-margin;
|
487
|
+
$switch-paddle-background: $white;
|
488
|
+
$switch-paddle-offset: 0.25rem;
|
489
|
+
$switch-paddle-radius: $global-radius;
|
490
|
+
$switch-paddle-transition: all 0.25s ease-out;
|
491
|
+
|
492
|
+
// 31. Table
|
493
|
+
// ---------
|
494
|
+
|
495
|
+
$table-background: $white;
|
496
|
+
$table-color-scale: 5%;
|
497
|
+
$table-border: 1px solid smart-scale($table-background, $table-color-scale);
|
498
|
+
$table-padding: rem-calc(8 10 10);
|
499
|
+
$table-hover-scale: 2%;
|
500
|
+
$table-row-hover: darken($table-background, $table-hover-scale);
|
501
|
+
$table-row-stripe-hover: darken($table-background, $table-color-scale + $table-hover-scale);
|
502
|
+
$table-striped-background: smart-scale($table-background, $table-color-scale);
|
503
|
+
$table-stripe: even;
|
504
|
+
$table-head-background: smart-scale($table-background, $table-color-scale / 2);
|
505
|
+
$table-foot-background: smart-scale($table-background, $table-color-scale);
|
506
|
+
$table-head-font-color: $body-font-color;
|
507
|
+
$show-header-for-stacked: false;
|
508
|
+
|
509
|
+
// 32. Tabs
|
510
|
+
// --------
|
511
|
+
|
512
|
+
$tab-margin: 0;
|
513
|
+
$tab-background: $white;
|
514
|
+
$tab-background-active: $light-gray;
|
515
|
+
$tab-item-font-size: rem-calc(12);
|
516
|
+
$tab-item-background-hover: $white;
|
517
|
+
$tab-item-padding: 1.25rem 1.5rem;
|
518
|
+
$tab-expand-max: 6;
|
519
|
+
$tab-content-background: $white;
|
520
|
+
$tab-content-border: $light-gray;
|
521
|
+
$tab-content-color: foreground($tab-background, $primary-color);
|
522
|
+
$tab-content-padding: 1rem;
|
523
|
+
|
524
|
+
// 33. Thumbnail
|
525
|
+
// -------------
|
526
|
+
|
527
|
+
$thumbnail-border: solid 4px $white;
|
528
|
+
$thumbnail-margin-bottom: $global-margin;
|
529
|
+
$thumbnail-shadow: 0 0 0 1px rgba($black, 0.2);
|
530
|
+
$thumbnail-shadow-hover: 0 0 6px 1px rgba($primary-color, 0.5);
|
531
|
+
$thumbnail-transition: box-shadow 200ms ease-out;
|
532
|
+
$thumbnail-radius: $global-radius;
|
533
|
+
|
534
|
+
// 34. Title Bar
|
535
|
+
// -------------
|
536
|
+
|
537
|
+
$titlebar-background: $black;
|
538
|
+
$titlebar-color: $white;
|
539
|
+
$titlebar-padding: 0.5rem;
|
540
|
+
$titlebar-text-font-weight: bold;
|
541
|
+
$titlebar-icon-color: $white;
|
542
|
+
$titlebar-icon-color-hover: $medium-gray;
|
543
|
+
$titlebar-icon-spacing: 0.25rem;
|
544
|
+
|
545
|
+
// 35. Tooltip
|
546
|
+
// -----------
|
547
|
+
|
548
|
+
$has-tip-font-weight: $global-weight-bold;
|
549
|
+
$has-tip-border-bottom: dotted 1px $dark-gray;
|
550
|
+
$tooltip-background-color: $black;
|
551
|
+
$tooltip-color: $white;
|
552
|
+
$tooltip-padding: 0.75rem;
|
553
|
+
$tooltip-font-size: $small-font-size;
|
554
|
+
$tooltip-pip-width: 0.75rem;
|
555
|
+
$tooltip-pip-height: $tooltip-pip-width * 0.866;
|
556
|
+
$tooltip-radius: $global-radius;
|
557
|
+
|
558
|
+
// 36. Top Bar
|
559
|
+
// -----------
|
560
|
+
|
561
|
+
$topbar-padding: 0.5rem;
|
562
|
+
$topbar-background: $light-gray;
|
563
|
+
$topbar-submenu-background: $topbar-background;
|
564
|
+
$topbar-title-spacing: 1rem;
|
565
|
+
$topbar-input-width: 200px;
|
566
|
+
$topbar-unstack-breakpoint: medium;
|