publify_core 9.0.0 → 9.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +5 -5
- data/CHANGELOG.md +92 -37
- data/app/assets/javascripts/bootstrap-sprockets.js +8 -0
- data/app/assets/javascripts/bootstrap/affix.js +164 -0
- data/app/assets/javascripts/bootstrap/alert.js +95 -0
- data/app/assets/javascripts/bootstrap/button.js +125 -0
- data/app/assets/javascripts/bootstrap/collapse.js +212 -0
- data/app/assets/javascripts/bootstrap/dropdown.js +165 -0
- data/app/assets/javascripts/bootstrap/modal.js +358 -0
- data/app/assets/javascripts/bootstrap/tab.js +155 -0
- data/app/assets/javascripts/bootstrap/transition.js +59 -0
- data/app/assets/javascripts/lightbox.js +4 -4
- data/app/assets/javascripts/publify_admin.js +1 -35
- data/app/assets/stylesheets/_bootstrap-compass.scss +9 -0
- data/app/assets/stylesheets/_bootstrap-mincer.scss +19 -0
- data/app/assets/stylesheets/_bootstrap-sprockets.scss +9 -0
- data/app/assets/stylesheets/_bootstrap.scss +42 -0
- data/app/assets/stylesheets/administration_structure.css.scss +1 -45
- data/app/assets/stylesheets/bootstrap/_alerts.scss +73 -0
- data/app/assets/stylesheets/bootstrap/_button-groups.scss +242 -0
- data/app/assets/stylesheets/bootstrap/_buttons.scss +168 -0
- data/app/assets/stylesheets/bootstrap/_close.scss +37 -0
- data/app/assets/stylesheets/bootstrap/_code.scss +69 -0
- data/app/assets/stylesheets/bootstrap/_component-animations.scss +38 -0
- data/app/assets/stylesheets/bootstrap/_dropdowns.scss +213 -0
- data/app/assets/stylesheets/bootstrap/_forms.scss +586 -0
- data/app/assets/stylesheets/bootstrap/_grid.scss +94 -0
- data/app/assets/stylesheets/bootstrap/_labels.scss +66 -0
- data/app/assets/stylesheets/bootstrap/_media.scss +66 -0
- data/app/assets/stylesheets/bootstrap/_mixins.scss +37 -0
- data/app/assets/stylesheets/bootstrap/_modals.scss +150 -0
- data/app/assets/stylesheets/bootstrap/_navbar.scss +479 -0
- data/app/assets/stylesheets/bootstrap/_navs.scss +242 -0
- data/app/assets/stylesheets/bootstrap/_normalize.scss +427 -0
- data/app/assets/stylesheets/bootstrap/_pagination.scss +86 -0
- data/app/assets/stylesheets/bootstrap/_panels.scss +222 -0
- data/app/assets/stylesheets/bootstrap/_print.scss +99 -0
- data/app/assets/stylesheets/bootstrap/_scaffolding.scss +160 -0
- data/app/assets/stylesheets/bootstrap/_tables.scss +234 -0
- data/app/assets/stylesheets/bootstrap/_theme.scss +224 -0
- data/app/assets/stylesheets/bootstrap/_type.scss +296 -0
- data/app/assets/stylesheets/bootstrap/_utilities.scss +55 -0
- data/app/assets/stylesheets/bootstrap/_variables.scss +638 -0
- data/app/assets/stylesheets/bootstrap/_wells.scss +29 -0
- data/app/assets/stylesheets/bootstrap/mixins/_alerts.scss +15 -0
- data/app/assets/stylesheets/bootstrap/mixins/_background-variant.scss +12 -0
- data/app/assets/stylesheets/bootstrap/mixins/_border-radius.scss +18 -0
- data/app/assets/stylesheets/bootstrap/mixins/_buttons.scss +56 -0
- data/app/assets/stylesheets/bootstrap/mixins/_center-block.scss +7 -0
- data/app/assets/stylesheets/bootstrap/mixins/_clearfix.scss +22 -0
- data/app/assets/stylesheets/bootstrap/mixins/_forms.scss +82 -0
- data/app/assets/stylesheets/bootstrap/mixins/_gradients.scss +56 -0
- data/app/assets/stylesheets/bootstrap/mixins/_grid-framework.scss +81 -0
- data/app/assets/stylesheets/bootstrap/mixins/_grid.scss +122 -0
- data/app/assets/stylesheets/bootstrap/mixins/_hide-text.scss +21 -0
- data/app/assets/stylesheets/bootstrap/mixins/_image.scss +28 -0
- data/app/assets/stylesheets/bootstrap/mixins/_labels.scss +12 -0
- data/app/assets/stylesheets/bootstrap/mixins/_nav-divider.scss +10 -0
- data/app/assets/stylesheets/bootstrap/mixins/_nav-vertical-align.scss +9 -0
- data/app/assets/stylesheets/bootstrap/mixins/_opacity.scss +7 -0
- data/app/assets/stylesheets/bootstrap/mixins/_pagination.scss +24 -0
- data/app/assets/stylesheets/bootstrap/mixins/_panels.scss +20 -0
- data/app/assets/stylesheets/bootstrap/mixins/_reset-filter.scss +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/_resize.scss +6 -0
- data/app/assets/stylesheets/bootstrap/mixins/_responsive-visibility.scss +17 -0
- data/app/assets/stylesheets/bootstrap/mixins/_size.scss +10 -0
- data/app/assets/stylesheets/bootstrap/mixins/_tab-focus.scss +9 -0
- data/app/assets/stylesheets/bootstrap/mixins/_table-row.scss +28 -0
- data/app/assets/stylesheets/bootstrap/mixins/_text-emphasis.scss +12 -0
- data/app/assets/stylesheets/bootstrap/mixins/_text-overflow.scss +8 -0
- data/app/assets/stylesheets/bootstrap/mixins/_vendor-prefixes.scss +222 -0
- data/app/assets/stylesheets/lightbox.css +3 -3
- data/app/assets/stylesheets/publify_admin.css.scss +0 -1
- data/app/controllers/accounts_controller.rb +2 -0
- data/app/controllers/admin/base_controller.rb +8 -16
- data/app/controllers/admin/content_controller.rb +38 -36
- data/app/controllers/admin/dashboard_controller.rb +16 -65
- data/app/controllers/admin/feedback_controller.rb +45 -37
- data/app/controllers/admin/notes_controller.rb +16 -10
- data/app/controllers/admin/pages_controller.rb +19 -29
- data/app/controllers/admin/post_types_controller.rb +7 -5
- data/app/controllers/admin/profiles_controller.rb +15 -5
- data/app/controllers/admin/redirects_controller.rb +9 -5
- data/app/controllers/admin/resources_controller.rb +7 -4
- data/app/controllers/admin/seo_controller.rb +12 -10
- data/app/controllers/admin/settings_controller.rb +7 -5
- data/app/controllers/admin/sidebar_controller.rb +6 -5
- data/app/controllers/admin/tags_controller.rb +6 -3
- data/app/controllers/admin/themes_controller.rb +10 -7
- data/app/controllers/admin/users_controller.rb +10 -7
- data/app/controllers/articles_controller.rb +49 -33
- data/app/controllers/authors_controller.rb +6 -3
- data/app/controllers/base_controller.rb +9 -11
- data/app/controllers/comments_controller.rb +13 -13
- data/app/controllers/content_controller.rb +4 -2
- data/app/controllers/feedback_controller.rb +4 -2
- data/app/controllers/notes_controller.rb +5 -3
- data/app/controllers/setup_controller.rb +15 -12
- data/app/controllers/tags_controller.rb +6 -4
- data/app/controllers/text_controller.rb +2 -4
- data/app/controllers/textfilter_controller.rb +2 -0
- data/app/controllers/theme_controller.rb +18 -13
- data/app/controllers/xml_controller.rb +2 -0
- data/app/helpers/admin/base_helper.rb +28 -29
- data/app/helpers/admin/feedback_helper.rb +34 -24
- data/app/helpers/articles_helper.rb +4 -2
- data/app/helpers/authors_helper.rb +7 -16
- data/app/helpers/base_helper.rb +56 -52
- data/app/helpers/blog_helper.rb +4 -2
- data/app/helpers/xml_helper.rb +3 -1
- data/app/jobs/application_job.rb +2 -0
- data/app/mailers/notification_mailer.rb +5 -3
- data/app/models/ability.rb +25 -23
- data/app/models/archives_sidebar.rb +14 -11
- data/app/models/article.rb +42 -42
- data/app/models/article/factory.rb +14 -6
- data/app/models/blog.rb +86 -75
- data/app/models/comment.rb +10 -11
- data/app/models/config_manager.rb +4 -2
- data/app/models/content.rb +37 -50
- data/app/models/content_base.rb +10 -4
- data/app/models/feedback.rb +21 -17
- data/app/models/meta_sidebar.rb +4 -3
- data/app/models/note.rb +26 -25
- data/app/models/page.rb +9 -8
- data/app/models/page_sidebar.rb +4 -2
- data/app/models/ping.rb +3 -1
- data/app/models/post_type.rb +3 -3
- data/app/models/redirect.rb +13 -7
- data/app/models/redirection.rb +3 -1
- data/app/models/resource.rb +5 -3
- data/app/models/search_sidebar.rb +4 -2
- data/app/models/sidebar.rb +11 -6
- data/app/models/static_sidebar.rb +14 -13
- data/app/models/tag.rb +15 -11
- data/app/models/tag_sidebar.rb +6 -3
- data/app/models/text_filter.rb +85 -11
- data/app/models/trackback.rb +7 -11
- data/app/models/trigger.rb +7 -4
- data/app/models/user.rb +44 -43
- data/app/services/title_builder.rb +52 -45
- data/app/uploaders/resource_uploader.rb +5 -3
- data/app/views/accounts/confirm.html.erb +3 -3
- data/app/views/admin/content/_article_list.html.erb +23 -8
- data/app/views/admin/content/_form.html.erb +71 -47
- data/app/views/admin/content/autosave.js.erb +2 -2
- data/app/views/admin/content/edit.html.erb +1 -1
- data/app/views/admin/content/index.html.erb +25 -15
- data/app/views/admin/content/new.html.erb +2 -2
- data/app/views/admin/dashboard/_comment.html.erb +5 -5
- data/app/views/admin/dashboard/_comments.html.erb +2 -2
- data/app/views/admin/dashboard/_drafts.html.erb +5 -5
- data/app/views/admin/dashboard/_overview.html.erb +7 -9
- data/app/views/admin/dashboard/_welcome.html.erb +11 -11
- data/app/views/admin/dashboard/index.html.erb +12 -7
- data/app/views/admin/feedback/_button.html.erb +6 -6
- data/app/views/admin/feedback/_feedback.html.erb +3 -3
- data/app/views/admin/feedback/_ham.html.erb +27 -9
- data/app/views/admin/feedback/_spam.html.erb +26 -16
- data/app/views/admin/feedback/article.html.erb +20 -21
- data/app/views/admin/feedback/edit.html.erb +14 -15
- data/app/views/admin/feedback/{ham.js → ham.js.erb} +0 -0
- data/app/views/admin/feedback/index.html.erb +25 -23
- data/app/views/admin/feedback/{spam.js → spam.js.erb} +0 -0
- data/app/views/admin/migrations/show.html.erb +10 -11
- data/app/views/admin/notes/_form.html.erb +13 -13
- data/app/views/admin/notes/_list.html.erb +19 -8
- data/app/views/admin/notes/_note.html.erb +12 -7
- data/app/views/admin/notes/edit.html.erb +6 -1
- data/app/views/admin/notes/index.html.erb +5 -1
- data/app/views/admin/notes/show.html.erb +2 -2
- data/app/views/admin/pages/_form.html.erb +86 -77
- data/app/views/admin/pages/_pages.html.erb +11 -4
- data/app/views/admin/pages/edit.html.erb +3 -1
- data/app/views/admin/pages/index.html.erb +10 -6
- data/app/views/admin/pages/new.html.erb +3 -1
- data/app/views/admin/post_types/_index_and_form.html.erb +15 -16
- data/app/views/admin/post_types/edit.html.erb +1 -1
- data/app/views/admin/post_types/index.html.erb +1 -1
- data/app/views/admin/profiles/index.html.erb +2 -3
- data/app/views/admin/redirects/_index_and_form.html.erb +10 -11
- data/app/views/admin/redirects/edit.html.erb +1 -1
- data/app/views/admin/redirects/index.html.erb +1 -1
- data/app/views/admin/resources/index.html.erb +19 -16
- data/app/views/admin/seo/_general.html.erb +23 -47
- data/app/views/admin/seo/_permalinks.html.erb +16 -16
- data/app/views/admin/seo/_titles.html.erb +63 -64
- data/app/views/admin/seo/show.html.erb +14 -19
- data/app/views/admin/settings/display.html.erb +22 -25
- data/app/views/admin/settings/feedback.html.erb +31 -32
- data/app/views/admin/settings/index.html.erb +23 -24
- data/app/views/admin/settings/write.html.erb +21 -22
- data/app/views/admin/shared/_edit.html.erb +3 -3
- data/app/views/admin/shared/_menu.html.erb +26 -26
- data/app/views/admin/shared/_twitter_alert.html.erb +1 -1
- data/app/views/admin/sidebar/_config.html.erb +5 -5
- data/app/views/admin/sidebar/_target_sidebar.html.erb +4 -4
- data/app/views/admin/sidebar/index.html.erb +7 -7
- data/app/views/admin/tags/_index_and_form.html.erb +11 -12
- data/app/views/admin/tags/edit.html.erb +1 -1
- data/app/views/admin/tags/index.html.erb +1 -1
- data/app/views/admin/themes/index.html.erb +5 -6
- data/app/views/admin/users/_form.html.erb +34 -34
- data/app/views/admin/users/edit.html.erb +2 -2
- data/app/views/admin/users/index.html.erb +10 -12
- data/app/views/admin/users/new.html.erb +2 -2
- data/app/views/archives_sidebar/_content.html.erb +2 -2
- data/app/views/articles/_archives_article.html.erb +3 -3
- data/app/views/articles/_article.html.erb +7 -9
- data/app/views/articles/_article_author.html.erb +4 -0
- data/app/views/articles/_article_content.html.erb +2 -2
- data/app/views/articles/_article_excerpt.html.erb +2 -2
- data/app/views/articles/_article_links.html.erb +1 -1
- data/app/views/articles/_comment_errors.html.erb +1 -1
- data/app/views/articles/_comment_form.html.erb +12 -12
- data/app/views/articles/_comment_preview.html.erb +3 -3
- data/app/views/articles/_password_form.html.erb +4 -4
- data/app/views/articles/_trackback.html.erb +2 -2
- data/app/views/articles/archives.html.erb +1 -1
- data/app/views/articles/feedback_atom_feed.atom.builder +3 -1
- data/app/views/articles/feedback_rss_feed.rss.builder +9 -8
- data/app/views/articles/index_atom_feed.atom.builder +5 -3
- data/app/views/articles/index_rss_feed.rss.builder +10 -9
- data/app/views/articles/live_search.html.erb +3 -3
- data/app/views/articles/read.html.erb +16 -8
- data/app/views/articles/search.html.erb +2 -2
- data/app/views/articles/trackback.xml.builder +3 -1
- data/app/views/articles/view_page.html.erb +2 -2
- data/app/views/authors/show.html.erb +9 -9
- data/app/views/authors/show_atom_feed.atom.builder +4 -2
- data/app/views/authors/show_rss_feed.rss.builder +10 -9
- data/app/views/comments/_comment.html.erb +3 -3
- data/app/views/devise/mailer/reset_password_instructions.html.erb +7 -9
- data/app/views/devise/passwords/edit.html.erb +4 -4
- data/app/views/devise/passwords/new.html.erb +1 -1
- data/app/views/devise/registrations/new.html.erb +5 -5
- data/app/views/devise/sessions/new.html.erb +3 -3
- data/app/views/errors/404.html.erb +2 -2
- data/app/views/feedback/index.atom.builder +3 -1
- data/app/views/feedback/index.rss.builder +9 -8
- data/app/views/layouts/accounts.html.erb +26 -26
- data/app/views/layouts/administration.html.erb +31 -31
- data/app/views/layouts/default.html.erb +4 -3
- data/app/views/layouts/editor.html.erb +5 -19
- data/app/views/meta_sidebar/_content.html.erb +2 -2
- data/app/views/notes/_note.html.erb +1 -1
- data/app/views/notes/index.html.erb +1 -1
- data/app/views/notes/show_in_reply.html.erb +1 -1
- data/app/views/notification_mailer/_mail_footer.html.erb +3 -3
- data/app/views/notification_mailer/article.html.erb +2 -2
- data/app/views/notification_mailer/comment.html.erb +5 -5
- data/app/views/notification_mailer/notif_user.html.erb +1 -1
- data/app/views/page_sidebar/_content.html.erb +1 -1
- data/app/views/search_sidebar/_content.html.erb +2 -2
- data/app/views/settings/install.html.erb +2 -2
- data/app/views/setup/index.html.erb +7 -7
- data/app/views/shared/_atom_header.atom.builder +4 -4
- data/app/views/shared/_atom_item_article.atom.builder +19 -29
- data/app/views/shared/_atom_item_comment.atom.builder +4 -2
- data/app/views/shared/_atom_item_trackback.atom.builder +4 -2
- data/app/views/shared/_google_analytics.html.erb +8 -0
- data/app/views/shared/_page_header.html.erb +9 -12
- data/app/views/shared/_rss_item_article.rss.builder +9 -7
- data/app/views/shared/_rss_item_comment.rss.builder +3 -1
- data/app/views/shared/_rss_item_trackback.rss.builder +3 -1
- data/app/views/sidebar/display_plugins.html.erb +1 -1
- data/app/views/tag_sidebar/_content.html.erb +1 -1
- data/app/views/tags/index.html.erb +1 -1
- data/app/views/xml/_googlesitemap_item_article.googlesitemap.builder +2 -0
- data/app/views/xml/_googlesitemap_item_category.googlesitemap.builder +2 -0
- data/app/views/xml/_googlesitemap_item_page.googlesitemap.builder +2 -0
- data/app/views/xml/_googlesitemap_item_tag.googlesitemap.builder +2 -0
- data/app/views/xml/sitemap.googlesitemap.builder +4 -2
- data/config/i18n-tasks.yml +0 -5
- data/config/initializers/devise.rb +10 -4
- data/config/initializers/mime_types.rb +3 -1
- data/config/locales/da.yml +134 -73
- data/config/locales/de.yml +142 -77
- data/config/locales/en.yml +128 -68
- data/config/locales/es-MX.yml +135 -71
- data/config/locales/fr.yml +167 -88
- data/config/locales/he.yml +128 -72
- data/config/locales/it.yml +136 -74
- data/config/locales/ja.yml +110 -66
- data/config/locales/lt.yml +153 -76
- data/config/locales/nb-NO.yml +123 -67
- data/config/locales/nl.yml +140 -77
- data/config/locales/pl.yml +329 -240
- data/config/locales/pt-BR.yml +137 -72
- data/config/locales/ro.yml +148 -72
- data/config/locales/ru.yml +161 -71
- data/config/locales/zh-CN.yml +106 -61
- data/config/locales/zh-TW.yml +109 -63
- data/config/routes.rb +68 -63
- data/db/migrate/113_initial_schema.rb +191 -191
- data/db/migrate/114_fixes_buggy_articles_and_notes.rb +10 -7
- data/db/migrate/115_drops_categories_for_tags.rb +5 -4
- data/db/migrate/20150207131657_add_missing_indexes.rb +2 -0
- data/db/migrate/20150807134129_simplify_redirect_relations.rb +5 -0
- data/db/migrate/20150808052637_add_blog_ids.rb +9 -3
- data/db/migrate/20150808191127_add_blog_id_to_redirects.rb +2 -0
- data/db/migrate/20150810094754_add_blog_id_to_tags.rb +2 -0
- data/db/migrate/20160108111120_add_devise_to_users.rb +4 -2
- data/db/migrate/20160108184201_move_last_connection_to_last_sign_in_at.rb +2 -0
- data/db/migrate/20160110094906_remove_profiles_rights.rb +2 -0
- data/db/migrate/20160605103918_replace_profile_id_with_string.rb +2 -0
- data/db/migrate/20160605154632_remove_profiles.rb +10 -5
- data/db/migrate/20160701061851_demand_blog_id_on_contents.rb +2 -0
- data/db/migrate/20160701062604_add_blog_id_to_resources.rb +2 -0
- data/db/migrate/20170528093024_move_resources_to_content.rb +2 -0
- data/db/migrate/20170528094923_move_tags_to_content.rb +2 -0
- data/db/migrate/20170528201606_remove_separate_published_flag.rb +2 -0
- data/db/migrate/20170605071626_remove_extra_state_columns_from_feedback.rb +2 -0
- data/db/migrate/20170702105201_remove_published_at_from_feedback.rb +2 -0
- data/db/migrate/20190208151235_add_text_filter_name_fields.rb +9 -0
- data/db/migrate/20190208152646_move_text_filter_to_name.rb +97 -0
- data/db/migrate/20190209155717_remove_text_filter_ids.rb +19 -0
- data/db/migrate/20190209160610_remove_text_filters.rb +17 -0
- data/db/migrate/20200413140440_add_unique_indexes.rb +10 -0
- data/db/seeds.rb +8 -20
- data/lib/email_notify.rb +3 -1
- data/lib/format.rb +4 -12
- data/lib/publify_core.rb +36 -35
- data/lib/publify_core/engine.rb +11 -4
- data/lib/publify_core/lang.rb +5 -1
- data/lib/publify_core/testing_support/dns_mock.rb +15 -0
- data/lib/publify_core/testing_support/factories.rb +240 -0
- data/lib/publify_core/testing_support/feed_assertions.rb +48 -0
- data/lib/publify_core/testing_support/fixtures/exploit.svg +4 -0
- data/lib/publify_core/testing_support/fixtures/fakepng.png +1 -0
- data/lib/publify_core/testing_support/fixtures/otherfile.txt +1 -0
- data/lib/publify_core/testing_support/fixtures/testfile.png +0 -0
- data/lib/publify_core/testing_support/fixtures/testfile.txt +1 -0
- data/lib/publify_core/testing_support/upload_fixtures.rb +15 -0
- data/lib/publify_core/version.rb +3 -1
- data/lib/publify_guid.rb +3 -1
- data/lib/publify_plugins.rb +10 -5
- data/lib/publify_textfilter_markdown.rb +38 -25
- data/lib/publify_textfilter_none.rb +5 -3
- data/lib/publify_textfilter_smartypants.rb +5 -3
- data/lib/publify_textfilter_textile.rb +7 -4
- data/lib/publify_textfilter_twitterfilter.rb +13 -7
- data/lib/publify_time.rb +4 -0
- data/lib/sidebar_field.rb +15 -13
- data/lib/sidebar_registry.rb +5 -3
- data/lib/spam_protection.rb +19 -17
- data/lib/tasks/i18n.rake +9 -0
- data/lib/tasks/manifest.rake +30 -0
- data/lib/tasks/publify_core_tasks.rake +2 -0
- data/lib/text_filter_plugin.rb +30 -29
- data/lib/theme.rb +5 -5
- data/lib/transforms.rb +21 -20
- data/themes/plain/javascripts/theme.js +0 -0
- metadata +247 -109
- data/app/assets/javascripts/widearea.js +0 -486
- data/app/assets/stylesheets/widearea.css +0 -133
- data/app/controllers/admin/textfilters_controller.rb +0 -6
- data/app/views/admin/dashboard/_inbound.html.erb +0 -31
- data/app/views/admin/notes/_header.html.erb +0 -6
- data/app/views/articles/_protected_article_content.html.erb +0 -6
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Grid system
|
|
3
|
+
// --------------------------------------------------
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// Container widths
|
|
7
|
+
//
|
|
8
|
+
// Set the container width, and override it for fixed navbars in media queries.
|
|
9
|
+
|
|
10
|
+
.container {
|
|
11
|
+
@include container-fixed;
|
|
12
|
+
|
|
13
|
+
@media (min-width: $screen-sm-min) {
|
|
14
|
+
width: $container-sm;
|
|
15
|
+
}
|
|
16
|
+
@media (min-width: $screen-md-min) {
|
|
17
|
+
width: $container-md;
|
|
18
|
+
}
|
|
19
|
+
@media (min-width: $screen-lg-min) {
|
|
20
|
+
width: $container-lg;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
|
|
25
|
+
// Fluid container
|
|
26
|
+
//
|
|
27
|
+
// Utilizes the mixin meant for fixed width containers, but without any defined
|
|
28
|
+
// width for fluid, full width layouts.
|
|
29
|
+
|
|
30
|
+
.container-fluid {
|
|
31
|
+
@include container-fixed;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
// Row
|
|
36
|
+
//
|
|
37
|
+
// Rows contain and clear the floats of your columns.
|
|
38
|
+
|
|
39
|
+
.row {
|
|
40
|
+
@include make-row;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
.row-no-gutters {
|
|
44
|
+
margin-right: 0;
|
|
45
|
+
margin-left: 0;
|
|
46
|
+
|
|
47
|
+
[class*="col-"] {
|
|
48
|
+
padding-right: 0;
|
|
49
|
+
padding-left: 0;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
// Columns
|
|
55
|
+
//
|
|
56
|
+
// Common styles for small and large grid columns
|
|
57
|
+
|
|
58
|
+
@include make-grid-columns;
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
// Extra small grid
|
|
62
|
+
//
|
|
63
|
+
// Columns, offsets, pushes, and pulls for extra small devices like
|
|
64
|
+
// smartphones.
|
|
65
|
+
|
|
66
|
+
@include make-grid(xs);
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
// Small grid
|
|
70
|
+
//
|
|
71
|
+
// Columns, offsets, pushes, and pulls for the small device range, from phones
|
|
72
|
+
// to tablets.
|
|
73
|
+
|
|
74
|
+
@media (min-width: $screen-sm-min) {
|
|
75
|
+
@include make-grid(sm);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
|
|
79
|
+
// Medium grid
|
|
80
|
+
//
|
|
81
|
+
// Columns, offsets, pushes, and pulls for the desktop device range.
|
|
82
|
+
|
|
83
|
+
@media (min-width: $screen-md-min) {
|
|
84
|
+
@include make-grid(md);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
// Large grid
|
|
89
|
+
//
|
|
90
|
+
// Columns, offsets, pushes, and pulls for the large desktop device range.
|
|
91
|
+
|
|
92
|
+
@media (min-width: $screen-lg-min) {
|
|
93
|
+
@include make-grid(lg);
|
|
94
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Labels
|
|
3
|
+
// --------------------------------------------------
|
|
4
|
+
|
|
5
|
+
.label {
|
|
6
|
+
display: inline;
|
|
7
|
+
padding: .2em .6em .3em;
|
|
8
|
+
font-size: 75%;
|
|
9
|
+
font-weight: 700;
|
|
10
|
+
line-height: 1;
|
|
11
|
+
color: $label-color;
|
|
12
|
+
text-align: center;
|
|
13
|
+
white-space: nowrap;
|
|
14
|
+
vertical-align: baseline;
|
|
15
|
+
border-radius: .25em;
|
|
16
|
+
|
|
17
|
+
// [converter] extracted a& to a.label
|
|
18
|
+
|
|
19
|
+
// Empty labels collapse automatically (not available in IE8)
|
|
20
|
+
&:empty {
|
|
21
|
+
display: none;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Quick fix for labels in buttons
|
|
25
|
+
.btn & {
|
|
26
|
+
position: relative;
|
|
27
|
+
top: -1px;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Add hover effects, but only for links
|
|
32
|
+
a.label {
|
|
33
|
+
&:hover,
|
|
34
|
+
&:focus {
|
|
35
|
+
color: $label-link-hover-color;
|
|
36
|
+
text-decoration: none;
|
|
37
|
+
cursor: pointer;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Colors
|
|
42
|
+
// Contextual variations (linked labels get darker on :hover)
|
|
43
|
+
|
|
44
|
+
.label-default {
|
|
45
|
+
@include label-variant($label-default-bg);
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.label-primary {
|
|
49
|
+
@include label-variant($label-primary-bg);
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
.label-success {
|
|
53
|
+
@include label-variant($label-success-bg);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.label-info {
|
|
57
|
+
@include label-variant($label-info-bg);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
.label-warning {
|
|
61
|
+
@include label-variant($label-warning-bg);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
.label-danger {
|
|
65
|
+
@include label-variant($label-danger-bg);
|
|
66
|
+
}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
.media {
|
|
2
|
+
// Proper spacing between instances of .media
|
|
3
|
+
margin-top: 15px;
|
|
4
|
+
|
|
5
|
+
&:first-child {
|
|
6
|
+
margin-top: 0;
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.media,
|
|
11
|
+
.media-body {
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
zoom: 1;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
.media-body {
|
|
17
|
+
width: 10000px;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
.media-object {
|
|
21
|
+
display: block;
|
|
22
|
+
|
|
23
|
+
// Fix collapse in webkit from max-width: 100% and display: table-cell.
|
|
24
|
+
&.img-thumbnail {
|
|
25
|
+
max-width: none;
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.media-right,
|
|
30
|
+
.media > .pull-right {
|
|
31
|
+
padding-left: 10px;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.media-left,
|
|
35
|
+
.media > .pull-left {
|
|
36
|
+
padding-right: 10px;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
.media-left,
|
|
40
|
+
.media-right,
|
|
41
|
+
.media-body {
|
|
42
|
+
display: table-cell;
|
|
43
|
+
vertical-align: top;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
.media-middle {
|
|
47
|
+
vertical-align: middle;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.media-bottom {
|
|
51
|
+
vertical-align: bottom;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
// Reset margins on headings for tighter default spacing
|
|
55
|
+
.media-heading {
|
|
56
|
+
margin-top: 0;
|
|
57
|
+
margin-bottom: 5px;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Media list variation
|
|
61
|
+
//
|
|
62
|
+
// Undo default ul/ol styles
|
|
63
|
+
.media-list {
|
|
64
|
+
padding-left: 0;
|
|
65
|
+
list-style: none;
|
|
66
|
+
}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// Mixins
|
|
2
|
+
// --------------------------------------------------
|
|
3
|
+
|
|
4
|
+
// Utilities
|
|
5
|
+
@import "mixins/hide-text";
|
|
6
|
+
@import "mixins/opacity";
|
|
7
|
+
@import "mixins/image";
|
|
8
|
+
@import "mixins/labels";
|
|
9
|
+
@import "mixins/reset-filter";
|
|
10
|
+
@import "mixins/resize";
|
|
11
|
+
@import "mixins/responsive-visibility";
|
|
12
|
+
@import "mixins/size";
|
|
13
|
+
@import "mixins/tab-focus";
|
|
14
|
+
@import "mixins/text-emphasis";
|
|
15
|
+
@import "mixins/text-overflow";
|
|
16
|
+
@import "mixins/vendor-prefixes";
|
|
17
|
+
|
|
18
|
+
// Components
|
|
19
|
+
@import "mixins/alerts";
|
|
20
|
+
@import "mixins/buttons";
|
|
21
|
+
@import "mixins/panels";
|
|
22
|
+
@import "mixins/pagination";
|
|
23
|
+
@import "mixins/nav-divider";
|
|
24
|
+
@import "mixins/forms";
|
|
25
|
+
@import "mixins/table-row";
|
|
26
|
+
|
|
27
|
+
// Skins
|
|
28
|
+
@import "mixins/background-variant";
|
|
29
|
+
@import "mixins/border-radius";
|
|
30
|
+
@import "mixins/gradients";
|
|
31
|
+
|
|
32
|
+
// Layout
|
|
33
|
+
@import "mixins/clearfix";
|
|
34
|
+
@import "mixins/center-block";
|
|
35
|
+
@import "mixins/nav-vertical-align";
|
|
36
|
+
@import "mixins/grid-framework";
|
|
37
|
+
@import "mixins/grid";
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Modals
|
|
3
|
+
// --------------------------------------------------
|
|
4
|
+
|
|
5
|
+
// .modal-open - body class for killing the scroll
|
|
6
|
+
// .modal - container to scroll within
|
|
7
|
+
// .modal-dialog - positioning shell for the actual modal
|
|
8
|
+
// .modal-content - actual modal w/ bg and corners and shit
|
|
9
|
+
|
|
10
|
+
// Kill the scroll on the body
|
|
11
|
+
.modal-open {
|
|
12
|
+
overflow: hidden;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
// Container that the modal scrolls within
|
|
16
|
+
.modal {
|
|
17
|
+
position: fixed;
|
|
18
|
+
top: 0;
|
|
19
|
+
right: 0;
|
|
20
|
+
bottom: 0;
|
|
21
|
+
left: 0;
|
|
22
|
+
z-index: $zindex-modal;
|
|
23
|
+
display: none;
|
|
24
|
+
overflow: hidden;
|
|
25
|
+
-webkit-overflow-scrolling: touch;
|
|
26
|
+
|
|
27
|
+
// Prevent Chrome on Windows from adding a focus outline. For details, see
|
|
28
|
+
// https://github.com/twbs/bootstrap/pull/10951.
|
|
29
|
+
outline: 0;
|
|
30
|
+
|
|
31
|
+
// When fading in the modal, animate it to slide down
|
|
32
|
+
&.fade .modal-dialog {
|
|
33
|
+
@include translate(0, -25%);
|
|
34
|
+
@include transition-transform(0.3s ease-out);
|
|
35
|
+
}
|
|
36
|
+
&.in .modal-dialog { @include translate(0, 0); }
|
|
37
|
+
}
|
|
38
|
+
.modal-open .modal {
|
|
39
|
+
overflow-x: hidden;
|
|
40
|
+
overflow-y: auto;
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Shell div to position the modal with bottom padding
|
|
44
|
+
.modal-dialog {
|
|
45
|
+
position: relative;
|
|
46
|
+
width: auto;
|
|
47
|
+
margin: 10px;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
// Actual modal
|
|
51
|
+
.modal-content {
|
|
52
|
+
position: relative;
|
|
53
|
+
background-color: $modal-content-bg;
|
|
54
|
+
background-clip: padding-box;
|
|
55
|
+
border: 1px solid $modal-content-fallback-border-color; //old browsers fallback (ie8 etc)
|
|
56
|
+
border: 1px solid $modal-content-border-color;
|
|
57
|
+
border-radius: $border-radius-large;
|
|
58
|
+
@include box-shadow(0 3px 9px rgba(0, 0, 0, .5));
|
|
59
|
+
// Remove focus outline from opened modal
|
|
60
|
+
outline: 0;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
// Modal background
|
|
64
|
+
.modal-backdrop {
|
|
65
|
+
position: fixed;
|
|
66
|
+
top: 0;
|
|
67
|
+
right: 0;
|
|
68
|
+
bottom: 0;
|
|
69
|
+
left: 0;
|
|
70
|
+
z-index: $zindex-modal-background;
|
|
71
|
+
background-color: $modal-backdrop-bg;
|
|
72
|
+
// Fade for backdrop
|
|
73
|
+
&.fade { @include opacity(0); }
|
|
74
|
+
&.in { @include opacity($modal-backdrop-opacity); }
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
// Modal header
|
|
78
|
+
// Top section of the modal w/ title and dismiss
|
|
79
|
+
.modal-header {
|
|
80
|
+
padding: $modal-title-padding;
|
|
81
|
+
border-bottom: 1px solid $modal-header-border-color;
|
|
82
|
+
@include clearfix;
|
|
83
|
+
}
|
|
84
|
+
// Close icon
|
|
85
|
+
.modal-header .close {
|
|
86
|
+
margin-top: -2px;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
// Title text within header
|
|
90
|
+
.modal-title {
|
|
91
|
+
margin: 0;
|
|
92
|
+
line-height: $modal-title-line-height;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Modal body
|
|
96
|
+
// Where all modal content resides (sibling of .modal-header and .modal-footer)
|
|
97
|
+
.modal-body {
|
|
98
|
+
position: relative;
|
|
99
|
+
padding: $modal-inner-padding;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
// Footer (for actions)
|
|
103
|
+
.modal-footer {
|
|
104
|
+
padding: $modal-inner-padding;
|
|
105
|
+
text-align: right; // right align buttons
|
|
106
|
+
border-top: 1px solid $modal-footer-border-color;
|
|
107
|
+
@include clearfix; // clear it in case folks use .pull-* classes on buttons
|
|
108
|
+
|
|
109
|
+
// Properly space out buttons
|
|
110
|
+
.btn + .btn {
|
|
111
|
+
margin-bottom: 0; // account for input[type="submit"] which gets the bottom margin like all other inputs
|
|
112
|
+
margin-left: 5px;
|
|
113
|
+
}
|
|
114
|
+
// but override that for button groups
|
|
115
|
+
.btn-group .btn + .btn {
|
|
116
|
+
margin-left: -1px;
|
|
117
|
+
}
|
|
118
|
+
// and override it for block buttons as well
|
|
119
|
+
.btn-block + .btn-block {
|
|
120
|
+
margin-left: 0;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
// Measure scrollbar width for padding body during modal show/hide
|
|
125
|
+
.modal-scrollbar-measure {
|
|
126
|
+
position: absolute;
|
|
127
|
+
top: -9999px;
|
|
128
|
+
width: 50px;
|
|
129
|
+
height: 50px;
|
|
130
|
+
overflow: scroll;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
// Scale up the modal
|
|
134
|
+
@media (min-width: $screen-sm-min) {
|
|
135
|
+
// Automatically set modal's width for larger viewports
|
|
136
|
+
.modal-dialog {
|
|
137
|
+
width: $modal-md;
|
|
138
|
+
margin: 30px auto;
|
|
139
|
+
}
|
|
140
|
+
.modal-content {
|
|
141
|
+
@include box-shadow(0 5px 15px rgba(0, 0, 0, .5));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
// Modal sizes
|
|
145
|
+
.modal-sm { width: $modal-sm; }
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
@media (min-width: $screen-md-min) {
|
|
149
|
+
.modal-lg { width: $modal-lg; }
|
|
150
|
+
}
|
|
@@ -0,0 +1,479 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Navbars
|
|
3
|
+
// --------------------------------------------------
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
// Wrapper and base class
|
|
7
|
+
//
|
|
8
|
+
// Provide a static navbar from which we expand to create full-width, fixed, and
|
|
9
|
+
// other navbar variations.
|
|
10
|
+
|
|
11
|
+
.navbar {
|
|
12
|
+
position: relative;
|
|
13
|
+
min-height: $navbar-height; // Ensure a navbar always shows (e.g., without a .navbar-brand in collapsed mode)
|
|
14
|
+
margin-bottom: $navbar-margin-bottom;
|
|
15
|
+
border: 1px solid transparent;
|
|
16
|
+
|
|
17
|
+
// Prevent floats from breaking the navbar
|
|
18
|
+
@include clearfix;
|
|
19
|
+
|
|
20
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
21
|
+
border-radius: $navbar-border-radius;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
// Navbar heading
|
|
27
|
+
//
|
|
28
|
+
// Groups `.navbar-brand` and `.navbar-toggle` into a single component for easy
|
|
29
|
+
// styling of responsive aspects.
|
|
30
|
+
|
|
31
|
+
.navbar-header {
|
|
32
|
+
@include clearfix;
|
|
33
|
+
|
|
34
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
35
|
+
float: left;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
|
|
40
|
+
// Navbar collapse (body)
|
|
41
|
+
//
|
|
42
|
+
// Group your navbar content into this for easy collapsing and expanding across
|
|
43
|
+
// various device sizes. By default, this content is collapsed when <768px, but
|
|
44
|
+
// will expand past that for a horizontal display.
|
|
45
|
+
//
|
|
46
|
+
// To start (on mobile devices) the navbar links, forms, and buttons are stacked
|
|
47
|
+
// vertically and include a `max-height` to overflow in case you have too much
|
|
48
|
+
// content for the user's viewport.
|
|
49
|
+
|
|
50
|
+
.navbar-collapse {
|
|
51
|
+
padding-right: $navbar-padding-horizontal;
|
|
52
|
+
padding-left: $navbar-padding-horizontal;
|
|
53
|
+
overflow-x: visible;
|
|
54
|
+
border-top: 1px solid transparent;
|
|
55
|
+
box-shadow: inset 0 1px 0 rgba(255, 255, 255, .1);
|
|
56
|
+
@include clearfix;
|
|
57
|
+
-webkit-overflow-scrolling: touch;
|
|
58
|
+
|
|
59
|
+
&.in {
|
|
60
|
+
overflow-y: auto;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
64
|
+
width: auto;
|
|
65
|
+
border-top: 0;
|
|
66
|
+
box-shadow: none;
|
|
67
|
+
|
|
68
|
+
&.collapse {
|
|
69
|
+
display: block !important;
|
|
70
|
+
height: auto !important;
|
|
71
|
+
padding-bottom: 0; // Override default setting
|
|
72
|
+
overflow: visible !important;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
&.in {
|
|
76
|
+
overflow-y: visible;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
// Undo the collapse side padding for navbars with containers to ensure
|
|
80
|
+
// alignment of right-aligned contents.
|
|
81
|
+
.navbar-fixed-top &,
|
|
82
|
+
.navbar-static-top &,
|
|
83
|
+
.navbar-fixed-bottom & {
|
|
84
|
+
padding-right: 0;
|
|
85
|
+
padding-left: 0;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
.navbar-fixed-top,
|
|
91
|
+
.navbar-fixed-bottom {
|
|
92
|
+
.navbar-collapse {
|
|
93
|
+
max-height: $navbar-collapse-max-height;
|
|
94
|
+
|
|
95
|
+
@media (max-device-width: $screen-xs-min) and (orientation: landscape) {
|
|
96
|
+
max-height: 200px;
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
// Fix the top/bottom navbars when screen real estate supports it
|
|
101
|
+
position: fixed;
|
|
102
|
+
right: 0;
|
|
103
|
+
left: 0;
|
|
104
|
+
z-index: $zindex-navbar-fixed;
|
|
105
|
+
|
|
106
|
+
// Undo the rounded corners
|
|
107
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
108
|
+
border-radius: 0;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
.navbar-fixed-top {
|
|
113
|
+
top: 0;
|
|
114
|
+
border-width: 0 0 1px;
|
|
115
|
+
}
|
|
116
|
+
.navbar-fixed-bottom {
|
|
117
|
+
bottom: 0;
|
|
118
|
+
margin-bottom: 0; // override .navbar defaults
|
|
119
|
+
border-width: 1px 0 0;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
// Both navbar header and collapse
|
|
124
|
+
//
|
|
125
|
+
// When a container is present, change the behavior of the header and collapse.
|
|
126
|
+
|
|
127
|
+
.container,
|
|
128
|
+
.container-fluid {
|
|
129
|
+
> .navbar-header,
|
|
130
|
+
> .navbar-collapse {
|
|
131
|
+
margin-right: -$navbar-padding-horizontal;
|
|
132
|
+
margin-left: -$navbar-padding-horizontal;
|
|
133
|
+
|
|
134
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
135
|
+
margin-right: 0;
|
|
136
|
+
margin-left: 0;
|
|
137
|
+
}
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
|
|
142
|
+
//
|
|
143
|
+
// Navbar alignment options
|
|
144
|
+
//
|
|
145
|
+
// Display the navbar across the entirety of the page or fixed it to the top or
|
|
146
|
+
// bottom of the page.
|
|
147
|
+
|
|
148
|
+
// Static top (unfixed, but 100% wide) navbar
|
|
149
|
+
.navbar-static-top {
|
|
150
|
+
z-index: $zindex-navbar;
|
|
151
|
+
border-width: 0 0 1px;
|
|
152
|
+
|
|
153
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
154
|
+
border-radius: 0;
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
|
|
159
|
+
// Brand/project name
|
|
160
|
+
|
|
161
|
+
.navbar-brand {
|
|
162
|
+
float: left;
|
|
163
|
+
height: $navbar-height;
|
|
164
|
+
padding: $navbar-padding-vertical $navbar-padding-horizontal;
|
|
165
|
+
font-size: $font-size-large;
|
|
166
|
+
line-height: $line-height-computed;
|
|
167
|
+
|
|
168
|
+
&:hover,
|
|
169
|
+
&:focus {
|
|
170
|
+
text-decoration: none;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
> img {
|
|
174
|
+
display: block;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
178
|
+
.navbar > .container &,
|
|
179
|
+
.navbar > .container-fluid & {
|
|
180
|
+
margin-left: -$navbar-padding-horizontal;
|
|
181
|
+
}
|
|
182
|
+
}
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
// Navbar toggle
|
|
187
|
+
//
|
|
188
|
+
// Custom button for toggling the `.navbar-collapse`, powered by the collapse
|
|
189
|
+
// JavaScript plugin.
|
|
190
|
+
|
|
191
|
+
.navbar-toggle {
|
|
192
|
+
position: relative;
|
|
193
|
+
float: right;
|
|
194
|
+
padding: 9px 10px;
|
|
195
|
+
margin-right: $navbar-padding-horizontal;
|
|
196
|
+
@include navbar-vertical-align(34px);
|
|
197
|
+
background-color: transparent;
|
|
198
|
+
background-image: none; // Reset unusual Firefox-on-Android default style; see https://github.com/necolas/normalize.css/issues/214
|
|
199
|
+
border: 1px solid transparent;
|
|
200
|
+
border-radius: $border-radius-base;
|
|
201
|
+
|
|
202
|
+
// We remove the `outline` here, but later compensate by attaching `:hover`
|
|
203
|
+
// styles to `:focus`.
|
|
204
|
+
&:focus {
|
|
205
|
+
outline: 0;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
// Bars
|
|
209
|
+
.icon-bar {
|
|
210
|
+
display: block;
|
|
211
|
+
width: 22px;
|
|
212
|
+
height: 2px;
|
|
213
|
+
border-radius: 1px;
|
|
214
|
+
}
|
|
215
|
+
.icon-bar + .icon-bar {
|
|
216
|
+
margin-top: 4px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
220
|
+
display: none;
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
|
|
225
|
+
// Navbar nav links
|
|
226
|
+
//
|
|
227
|
+
// Builds on top of the `.nav` components with its own modifier class to make
|
|
228
|
+
// the nav the full height of the horizontal nav (above 768px).
|
|
229
|
+
|
|
230
|
+
.navbar-nav {
|
|
231
|
+
margin: ($navbar-padding-vertical / 2) (-$navbar-padding-horizontal);
|
|
232
|
+
|
|
233
|
+
> li > a {
|
|
234
|
+
padding-top: 10px;
|
|
235
|
+
padding-bottom: 10px;
|
|
236
|
+
line-height: $line-height-computed;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@media (max-width: $grid-float-breakpoint-max) {
|
|
240
|
+
// Dropdowns get custom display when collapsed
|
|
241
|
+
.open .dropdown-menu {
|
|
242
|
+
position: static;
|
|
243
|
+
float: none;
|
|
244
|
+
width: auto;
|
|
245
|
+
margin-top: 0;
|
|
246
|
+
background-color: transparent;
|
|
247
|
+
border: 0;
|
|
248
|
+
box-shadow: none;
|
|
249
|
+
> li > a,
|
|
250
|
+
.dropdown-header {
|
|
251
|
+
padding: 5px 15px 5px 25px;
|
|
252
|
+
}
|
|
253
|
+
> li > a {
|
|
254
|
+
line-height: $line-height-computed;
|
|
255
|
+
&:hover,
|
|
256
|
+
&:focus {
|
|
257
|
+
background-image: none;
|
|
258
|
+
}
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
|
|
263
|
+
// Uncollapse the nav
|
|
264
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
265
|
+
float: left;
|
|
266
|
+
margin: 0;
|
|
267
|
+
|
|
268
|
+
> li {
|
|
269
|
+
float: left;
|
|
270
|
+
> a {
|
|
271
|
+
padding-top: $navbar-padding-vertical;
|
|
272
|
+
padding-bottom: $navbar-padding-vertical;
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
// Dropdown menus
|
|
280
|
+
|
|
281
|
+
// Menu position and menu carets
|
|
282
|
+
.navbar-nav > li > .dropdown-menu {
|
|
283
|
+
margin-top: 0;
|
|
284
|
+
@include border-top-radius(0);
|
|
285
|
+
}
|
|
286
|
+
// Menu position and menu caret support for dropups via extra dropup class
|
|
287
|
+
.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu {
|
|
288
|
+
margin-bottom: 0;
|
|
289
|
+
@include border-top-radius($navbar-border-radius);
|
|
290
|
+
@include border-bottom-radius(0);
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
|
|
294
|
+
// Buttons in navbars
|
|
295
|
+
//
|
|
296
|
+
// Vertically center a button within a navbar (when *not* in a form).
|
|
297
|
+
|
|
298
|
+
.navbar-btn {
|
|
299
|
+
@include navbar-vertical-align($input-height-base);
|
|
300
|
+
|
|
301
|
+
&.btn-sm {
|
|
302
|
+
@include navbar-vertical-align($input-height-small);
|
|
303
|
+
}
|
|
304
|
+
&.btn-xs {
|
|
305
|
+
@include navbar-vertical-align(22);
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
|
|
309
|
+
|
|
310
|
+
// Text in navbars
|
|
311
|
+
//
|
|
312
|
+
// Add a class to make any element properly align itself vertically within the navbars.
|
|
313
|
+
|
|
314
|
+
.navbar-text {
|
|
315
|
+
@include navbar-vertical-align($line-height-computed);
|
|
316
|
+
|
|
317
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
318
|
+
float: left;
|
|
319
|
+
margin-right: $navbar-padding-horizontal;
|
|
320
|
+
margin-left: $navbar-padding-horizontal;
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
|
|
325
|
+
// Component alignment
|
|
326
|
+
//
|
|
327
|
+
// Repurpose the pull utilities as their own navbar utilities to avoid specificity
|
|
328
|
+
// issues with parents and chaining. Only do this when the navbar is uncollapsed
|
|
329
|
+
// though so that navbar contents properly stack and align in mobile.
|
|
330
|
+
//
|
|
331
|
+
// Declared after the navbar components to ensure more specificity on the margins.
|
|
332
|
+
|
|
333
|
+
@media (min-width: $grid-float-breakpoint) {
|
|
334
|
+
.navbar-left {
|
|
335
|
+
float: left !important;
|
|
336
|
+
}
|
|
337
|
+
.navbar-right {
|
|
338
|
+
float: right !important;
|
|
339
|
+
margin-right: -$navbar-padding-horizontal;
|
|
340
|
+
|
|
341
|
+
~ .navbar-right {
|
|
342
|
+
margin-right: 0;
|
|
343
|
+
}
|
|
344
|
+
}
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
|
|
348
|
+
// Alternate navbars
|
|
349
|
+
// --------------------------------------------------
|
|
350
|
+
|
|
351
|
+
// Default navbar
|
|
352
|
+
.navbar-default {
|
|
353
|
+
background-color: $navbar-default-bg;
|
|
354
|
+
border-color: $navbar-default-border;
|
|
355
|
+
|
|
356
|
+
.navbar-brand {
|
|
357
|
+
color: $navbar-default-brand-color;
|
|
358
|
+
&:hover,
|
|
359
|
+
&:focus {
|
|
360
|
+
color: $navbar-default-brand-hover-color;
|
|
361
|
+
background-color: $navbar-default-brand-hover-bg;
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.navbar-text {
|
|
366
|
+
color: $navbar-default-color;
|
|
367
|
+
}
|
|
368
|
+
|
|
369
|
+
.navbar-nav {
|
|
370
|
+
> li > a {
|
|
371
|
+
color: $navbar-default-link-color;
|
|
372
|
+
|
|
373
|
+
&:hover,
|
|
374
|
+
&:focus {
|
|
375
|
+
color: $navbar-default-link-hover-color;
|
|
376
|
+
background-color: $navbar-default-link-hover-bg;
|
|
377
|
+
}
|
|
378
|
+
}
|
|
379
|
+
> .active > a {
|
|
380
|
+
&,
|
|
381
|
+
&:hover,
|
|
382
|
+
&:focus {
|
|
383
|
+
color: $navbar-default-link-active-color;
|
|
384
|
+
background-color: $navbar-default-link-active-bg;
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
> .disabled > a {
|
|
388
|
+
&,
|
|
389
|
+
&:hover,
|
|
390
|
+
&:focus {
|
|
391
|
+
color: $navbar-default-link-disabled-color;
|
|
392
|
+
background-color: $navbar-default-link-disabled-bg;
|
|
393
|
+
}
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
// Dropdown menu items
|
|
397
|
+
// Remove background color from open dropdown
|
|
398
|
+
> .open > a {
|
|
399
|
+
&,
|
|
400
|
+
&:hover,
|
|
401
|
+
&:focus {
|
|
402
|
+
color: $navbar-default-link-active-color;
|
|
403
|
+
background-color: $navbar-default-link-active-bg;
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
|
|
407
|
+
@media (max-width: $grid-float-breakpoint-max) {
|
|
408
|
+
// Dropdowns get custom display when collapsed
|
|
409
|
+
.open .dropdown-menu {
|
|
410
|
+
> li > a {
|
|
411
|
+
color: $navbar-default-link-color;
|
|
412
|
+
&:hover,
|
|
413
|
+
&:focus {
|
|
414
|
+
color: $navbar-default-link-hover-color;
|
|
415
|
+
background-color: $navbar-default-link-hover-bg;
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
> .active > a {
|
|
419
|
+
&,
|
|
420
|
+
&:hover,
|
|
421
|
+
&:focus {
|
|
422
|
+
color: $navbar-default-link-active-color;
|
|
423
|
+
background-color: $navbar-default-link-active-bg;
|
|
424
|
+
}
|
|
425
|
+
}
|
|
426
|
+
> .disabled > a {
|
|
427
|
+
&,
|
|
428
|
+
&:hover,
|
|
429
|
+
&:focus {
|
|
430
|
+
color: $navbar-default-link-disabled-color;
|
|
431
|
+
background-color: $navbar-default-link-disabled-bg;
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
.navbar-toggle {
|
|
439
|
+
border-color: $navbar-default-toggle-border-color;
|
|
440
|
+
&:hover,
|
|
441
|
+
&:focus {
|
|
442
|
+
background-color: $navbar-default-toggle-hover-bg;
|
|
443
|
+
}
|
|
444
|
+
.icon-bar {
|
|
445
|
+
background-color: $navbar-default-toggle-icon-bar-bg;
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
|
|
449
|
+
.navbar-collapse {
|
|
450
|
+
border-color: $navbar-default-border;
|
|
451
|
+
}
|
|
452
|
+
|
|
453
|
+
|
|
454
|
+
// Links in navbars
|
|
455
|
+
//
|
|
456
|
+
// Add a class to ensure links outside the navbar nav are colored correctly.
|
|
457
|
+
|
|
458
|
+
.navbar-link {
|
|
459
|
+
color: $navbar-default-link-color;
|
|
460
|
+
&:hover {
|
|
461
|
+
color: $navbar-default-link-hover-color;
|
|
462
|
+
}
|
|
463
|
+
}
|
|
464
|
+
|
|
465
|
+
.btn-link {
|
|
466
|
+
color: $navbar-default-link-color;
|
|
467
|
+
&:hover,
|
|
468
|
+
&:focus {
|
|
469
|
+
color: $navbar-default-link-hover-color;
|
|
470
|
+
}
|
|
471
|
+
&[disabled],
|
|
472
|
+
fieldset[disabled] & {
|
|
473
|
+
&:hover,
|
|
474
|
+
&:focus {
|
|
475
|
+
color: $navbar-default-link-disabled-color;
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
}
|
|
479
|
+
}
|