diff --git a/misc/grid-sidebar.png b/misc/grid-sidebar.png new file mode 100644 index 0000000000000000000000000000000000000000..0244efdaf62e41acbbb20421ca472dbea16f80a2 GIT binary patch literal 17361 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 IM6N<$f_d#Lp8x;= literal 0 HcmV?d00001 diff --git a/misc/patternfly-logo.svg b/misc/patternfly-logo.svg new file mode 100644 index 000000000..5f6e45e20 --- /dev/null +++ b/misc/patternfly-logo.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/misc/patternfly-showcase.css b/misc/patternfly-showcase.css new file mode 100644 index 000000000..d2d1a0313 --- /dev/null +++ b/misc/patternfly-showcase.css @@ -0,0 +1,297 @@ +.showcase > header + .container-fluid { + padding-bottom: 50px; + padding-top: 20px; + transition: padding-left 0.2s cubic-bezier(0.35, 0, 0.25, 1); +} +.showcase > header .navbar.navbar-default { + background: #040404; + border-bottom: 0; + -moz-border-radius: 0; + -webkit-border-radius: 0; + border-radius: 0; + border-top: 2px solid #32a6d7; + font-size: 13px; + margin-bottom: 0; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); +} +.showcase > header .navbar.navbar-default .navbar-brand { + background: url(../img/patternfly-logo.svg) 0 50% no-repeat; + font-size: 13px; + height: 40px; + letter-spacing: 3px; + line-height: 0; + margin-bottom: 15px; + margin-top: 15px; + padding: 20px 0 20px 55px; + position: relative; + text-indent: 0; +} +@media (min-width: 768px) { + .showcase > header .navbar.navbar-default .navbar-brand { + margin-left: 0; + } +} +.showcase > header .navbar.navbar-default .navbar-brand .secondary-logo { + font-weight: lighter; +} +.showcase > header .navbar.navbar-default .navbar-brand a { + color: #fff; +} +.showcase > header .navbar.navbar-default .navbar-brand a:hover { + border-bottom: solid 1px #1F89C7; + text-decoration: none; +} +.showcase > header .navbar.navbar-default .navbar-collapse { + border-top-color: rgba(255, 255, 255, 0.15); + box-shadow: 0 0 3px rgba(0, 0, 0, 0.95); +} +@media (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-collapse { + padding-bottom: 10px; + padding-top: 15px; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-collapse { + border-top-style: solid; + border-top-width: 1px; + margin-right: -20px; + margin-left: -20px; + padding-left: 0; + padding-right: 0; + } + .showcase > header .navbar.navbar-default .navbar-collapse.collapse { + display: none !important; + overflow-x: hidden !important; + } + .showcase > header .navbar.navbar-default .navbar-collapse.collapse.in { + display: block !important; + overflow-x: visible !important; + } +} +@media (min-width: 992px) { + .showcase > header .navbar.navbar-default .navbar-collapse { + border-top: 0; + box-shadow: none; + } +} +.showcase > header .navbar.navbar-default .navbar-collapse .navbar-nav { + margin-bottom: 0; + margin-top: 0; +} +@media (min-width: 768px) and (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-collapse .navbar-nav > li { + float: none; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-header { + float: none; + margin-right: -20px; + margin-left: -20px; + } +} +@media (min-width: 768px) and (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-right { + float: none; + margin-right: 0; + } +} +.showcase > header .navbar.navbar-default .navbar-right > li.active > a, +.showcase > header .navbar.navbar-default .navbar-right > li.active:hover > a { + background: transparent; + color: #3bb1dc; +} +.showcase > header .navbar.navbar-default .navbar-right > li:hover { + background: #212121; +} +.showcase > header .navbar.navbar-default .navbar-right > li:hover > a { + background: transparent; + color: #fff; +} +.showcase > header .navbar.navbar-default .navbar-right > li > a { + color: #eee; + padding: 7px 20px; +} +@media (min-width: 992px) { + .showcase > header .navbar.navbar-default .navbar-right > li > a { + padding: 25px 15px; + } +} +.showcase > header .navbar.navbar-default .navbar-right > li > a:hover { + color: #fff; +} +.showcase > header .navbar.navbar-default .navbar-right .navbar-utility .applauncher-pf .dropdown-menu { + margin-top: 0; +} +.showcase > header .navbar.navbar-default .navbar-right .dropdown-kebab-pf .dropdown-menu.dropdown-menu-right::after, +.showcase > header .navbar.navbar-default .navbar-right .dropdown-kebab-pf .dropdown-menu.dropdown-menu-right::before { + right: 10px; +} +.showcase > header .navbar.navbar-default .navbar-right .dropdown > a:link { + background-color: transparent !important; +} +.showcase > header .navbar.navbar-default .navbar-toggle { + background-color: transparent; + border: none; + float: left; + margin-bottom: 19px; + margin-left: 20px; + margin-right: 15px; + margin-top: 19px; +} +@media (min-width: 768px) and (max-width: 991px) { + .showcase > header .navbar.navbar-default .navbar-toggle { + display: block; + } +} +.showcase > header .navbar.navbar-default .navbar-toggle:focus { + outline: none; +} +.showcase > header .navbar.navbar-default .navbar-toggle:focus .icon-bar, +.showcase > header .navbar.navbar-default .navbar-toggle:hover .icon-bar { + background-color: #fff; + -webkit-box-shadow: 0 0 3px rgba(255, 255, 255, 0.7); + box-shadow: 0 0 3px rgba(255, 255, 255, 0.7); +} +.showcase > header .navbar-sidebar { + background: #292e33 url(../img/grid-sidebar.png) no-repeat 50% 100%; + border: 0; + border-radius: 0; + bottom: 0; + left: -240px; + margin: 0; + padding: 0; + position: fixed; + top: 72px; + transition: all 0.2s cubic-bezier(0.35, 0, 0.25, 1); + width: 240px; + z-index: 1029; +} +@media (min-width: 992px) { + .showcase > header .navbar-sidebar { + box-shadow: none; + left: 0; + overflow-x: hidden; + overflow-y: auto; + padding-right: 0; + } +} +.showcase > header .navbar-sidebar.open { + box-shadow: 0 0 3px rgba(0, 0, 0, 0.95); + left: 0; + overflow-x: hidden; + overflow-y: auto; +} +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar { + box-shadow: none; + background-color: transparent; + right: 0; +} +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar:active, +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar:hover { + background: rgba(92, 103, 112, 0.5); +} +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar:focus { + background: transparent; +} +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar .fa-angle-double-right { + left: 6px; +} +.showcase > header .navbar-sidebar.open .navbar-toggle-sidebar .fa-angle-double-right:before { + content: "\f100"; +} +.showcase > header .navbar-sidebar ul { + list-style: none; + margin: 0; + padding: 0; +} +.showcase > header .navbar-sidebar ul li { + position: relative; +} +.showcase > header .navbar-sidebar ul li.active > a { + color: #fff; + font-weight: 600; +} +.showcase > header .navbar-sidebar ul li a { + color: #fff; + display: block; + padding: 5px 20px; +} +.showcase > header .navbar-sidebar ul li a:hover { + text-decoration: none; +} +.showcase > header .navbar-sidebar > ul { + margin: 0 0 20px 0; +} +.showcase > header .navbar-sidebar > ul > li > a { + border-bottom: 1px solid #393f44; + font-size: 16px; + margin-bottom: 10px; + line-height: 60px; + padding-bottom: 0; + padding-top: 0; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active { + background: rgba(101, 109, 115, 0.25); +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active:after { + background: #0088ce; + content: ''; + height: 100%; + left: 0; + position: absolute; + top: 0; + width: 4px; + z-index: 2; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active > a:hover { + background: transparent; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active > ul { + display: block; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active > ul > li.active > a { + color: #0088ce; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active > ul > li.active > a:hover { + background: transparent; +} +.showcase > header .navbar-sidebar > ul > li > ul > li.active > ul > li > a:hover { + background: rgba(0, 0, 0, 0.1); +} +.showcase > header .navbar-sidebar > ul > li > ul > li a:focus { + text-decoration: none; +} +.showcase > header .navbar-sidebar > ul > li > ul > li a:hover { + background: rgba(101, 109, 115, 0.15); +} +.showcase > header .navbar-sidebar > ul > li > ul > li a.showcase-collapsed:before { + content: "\f107"; + font-family: "FontAwesome"; + margin-right: 5px; + vertical-align: 0; +} +.showcase > header .navbar-sidebar > ul > li > ul > li a.showcase-collapsed.collapsed:before { + content: "\f105"; + margin-left: 2px; + margin-right: 7px; +} +.showcase > header .navbar-sidebar > ul > li > ul > li > ul, +.showcase > header .navbar-sidebar > ul > li > ul > li > ul.collapse { + display: none; +} +.showcase > header .navbar-sidebar > ul > li > ul > li > ul.collapse.in { + display: block; +} +.showcase > header .navbar-sidebar > ul > li > ul > li > ul > li > a { + padding-left: 34px; +} +.showcase > header .navbar-sidebar.hidden { + display: none; +} +@media (min-width: 992px) { + .showcase > header .navbar-sidebar.navbar-primary { + left: -240px; + } +} \ No newline at end of file