video-react-player 0.1.0

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.
Files changed (105) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +23 -0
  3. package/README.md +584 -0
  4. package/dist/Manager.d.ts +36 -0
  5. package/dist/actions/player.d.ts +124 -0
  6. package/dist/actions/video.d.ts +161 -0
  7. package/dist/components/Bezel.d.ts +22 -0
  8. package/dist/components/BigPlayButton.d.ts +20 -0
  9. package/dist/components/ClickableComponent.d.ts +24 -0
  10. package/dist/components/LoadingSpinner.d.ts +11 -0
  11. package/dist/components/Player.d.ts +82 -0
  12. package/dist/components/PosterImage.d.ts +12 -0
  13. package/dist/components/Shortcut.d.ts +48 -0
  14. package/dist/components/Slider.d.ts +49 -0
  15. package/dist/components/Source.d.ts +25 -0
  16. package/dist/components/Video.d.ts +48 -0
  17. package/dist/components/control-bar/ClosedCaptionButton.d.ts +19 -0
  18. package/dist/components/control-bar/ControlBar.d.ts +17 -0
  19. package/dist/components/control-bar/DownloadButton.d.ts +17 -0
  20. package/dist/components/control-bar/ForwardControl.d.ts +13 -0
  21. package/dist/components/control-bar/ForwardReplayControl.d.ts +17 -0
  22. package/dist/components/control-bar/FullscreenToggle.d.ts +5 -0
  23. package/dist/components/control-bar/LoadProgressBar.d.ts +18 -0
  24. package/dist/components/control-bar/LoopToggle.d.ts +5 -0
  25. package/dist/components/control-bar/MouseTimeDisplay.d.ts +22 -0
  26. package/dist/components/control-bar/PictureInPictureToggle.d.ts +15 -0
  27. package/dist/components/control-bar/PlayProgressBar.d.ts +12 -0
  28. package/dist/components/control-bar/PlayToggle.d.ts +13 -0
  29. package/dist/components/control-bar/PlaybackRate.d.ts +14 -0
  30. package/dist/components/control-bar/PlaybackRateMenuButton.d.ts +17 -0
  31. package/dist/components/control-bar/ProgressControl.d.ts +16 -0
  32. package/dist/components/control-bar/QualityMenuButton.d.ts +17 -0
  33. package/dist/components/control-bar/ReplayControl.d.ts +13 -0
  34. package/dist/components/control-bar/ScreenshotButton.d.ts +14 -0
  35. package/dist/components/control-bar/SeekBar.d.ts +18 -0
  36. package/dist/components/control-bar/TheaterModeToggle.d.ts +14 -0
  37. package/dist/components/control-bar/VolumeMenuButton.d.ts +17 -0
  38. package/dist/components/menu/Menu.d.ts +15 -0
  39. package/dist/components/menu/MenuButton.d.ts +46 -0
  40. package/dist/components/menu/MenuItem.d.ts +22 -0
  41. package/dist/components/popup/Popup.d.ts +15 -0
  42. package/dist/components/popup/PopupButton.d.ts +19 -0
  43. package/dist/components/time-controls/CurrentTimeDisplay.d.ts +18 -0
  44. package/dist/components/time-controls/DurationDisplay.d.ts +12 -0
  45. package/dist/components/time-controls/RemainingTimeDisplay.d.ts +13 -0
  46. package/dist/components/time-controls/TimeDivider.d.ts +10 -0
  47. package/dist/components/volume-control/VolumeBar.d.ts +33 -0
  48. package/dist/components/volume-control/VolumeControl.d.ts +16 -0
  49. package/dist/components/volume-control/VolumeLevel.d.ts +9 -0
  50. package/dist/index.d.ts +46 -0
  51. package/dist/reducers/index.d.ts +11 -0
  52. package/dist/reducers/operation.d.ts +10 -0
  53. package/dist/reducers/player.d.ts +33 -0
  54. package/dist/types/component.d.ts +13 -0
  55. package/dist/types/player.d.ts +31 -0
  56. package/dist/utils/browser.d.ts +5 -0
  57. package/dist/utils/dom.d.ts +31 -0
  58. package/dist/utils/fullscreen.d.ts +16 -0
  59. package/dist/utils/index.d.ts +24 -0
  60. package/dist/video-react-new.cjs.js +3904 -0
  61. package/dist/video-react-new.css +1155 -0
  62. package/dist/video-react-new.d.ts +11 -0
  63. package/dist/video-react-new.es.js +3861 -0
  64. package/dist/video-react-new.full.js +4578 -0
  65. package/dist/video-react-new.full.min.js +2 -0
  66. package/dist/video-react-new.js +4283 -0
  67. package/dist/video-react-new.min.js +2 -0
  68. package/dist/video-react-player.cjs.js +3904 -0
  69. package/dist/video-react-player.css +1155 -0
  70. package/dist/video-react-player.d.ts +11 -0
  71. package/dist/video-react-player.es.js +3861 -0
  72. package/dist/video-react-player.full.js +4578 -0
  73. package/dist/video-react-player.full.min.js +2 -0
  74. package/dist/video-react-player.js +4283 -0
  75. package/dist/video-react-player.min.js +2 -0
  76. package/package.json +145 -0
  77. package/styles/fonts/video-react.eot +0 -0
  78. package/styles/fonts/video-react.svg +43 -0
  79. package/styles/fonts/video-react.ttf +0 -0
  80. package/styles/fonts/video-react.woff +0 -0
  81. package/styles/icons.json +584 -0
  82. package/styles/scss/components/bezel.scss +119 -0
  83. package/styles/scss/components/big-play-button.scss +45 -0
  84. package/styles/scss/components/button.scss +18 -0
  85. package/styles/scss/components/closed-caption.scss +13 -0
  86. package/styles/scss/components/control-bar.scss +51 -0
  87. package/styles/scss/components/control.scss +42 -0
  88. package/styles/scss/components/fullscreen.scss +13 -0
  89. package/styles/scss/components/loading-spinner.scss +105 -0
  90. package/styles/scss/components/menu/menu-inline.scss +67 -0
  91. package/styles/scss/components/menu/menu-popup.scss +27 -0
  92. package/styles/scss/components/menu/menu.scss +59 -0
  93. package/styles/scss/components/new-controls.scss +42 -0
  94. package/styles/scss/components/play-pause.scss +11 -0
  95. package/styles/scss/components/playback-rate.scss +13 -0
  96. package/styles/scss/components/poster.scss +27 -0
  97. package/styles/scss/components/progress.scss +157 -0
  98. package/styles/scss/components/slider.scss +13 -0
  99. package/styles/scss/components/time.scss +18 -0
  100. package/styles/scss/components/volume.scss +147 -0
  101. package/styles/scss/icons.scss +278 -0
  102. package/styles/scss/layout.scss +115 -0
  103. package/styles/scss/mixins.scss +117 -0
  104. package/styles/scss/variables.scss +16 -0
  105. package/styles/scss/video-react-player.scss +34 -0
@@ -0,0 +1,45 @@
1
+ .video-react-player {
2
+ .video-react-player-big-play-button {
3
+ font-size: 3em;
4
+ line-height: $video-react-player-big-play-button-height;
5
+ height: $video-react-player-big-play-button-height;
6
+ width: $video-react-player-big-play-button-width; // Firefox bug: For some reason without width the icon wouldn't show up. Switched to using width and removed padding.
7
+ display: block;
8
+ position: absolute;
9
+ top: 10px;
10
+ left: 10px;
11
+ padding: 0;
12
+ cursor: pointer;
13
+ opacity: 1;
14
+ border: 0.06666em solid $video-react-player-primary-foreground-color;
15
+ // Need a slightly gray bg so it can be seen on black backgrounds
16
+ @include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
17
+ @include border-radius(0.3em);
18
+ @include transition(all 0.4s);
19
+ @extend .video-react-player-icon;
20
+ @extend .video-react-player-icon-play-arrow;
21
+ // Since the big play button doesn't inherit from vjs-control, we need to specify a bit more than
22
+ // other buttons for the icon.
23
+ &:before {
24
+ @extend %video-react-player-icon-default;
25
+ }
26
+ // Allow people that hate their poster image to center the big play button.
27
+ &.video-react-player-big-play-button-center {
28
+ top: 50%;
29
+ left: 50%;
30
+ margin-top: 0;
31
+ margin-left: 0;
32
+ transform: translate(-50%, -50%);
33
+ }
34
+ &.big-play-button-hide {
35
+ display: none;
36
+ }
37
+ }
38
+ &:hover .video-react-player-big-play-button,
39
+ .video-react-player-big-play-button:focus {
40
+ outline: 0;
41
+ border-color: $video-react-player-primary-foreground-color;
42
+ @include background-color-with-alpha($video-react-player-secondary-background-color, $video-react-player-secondary-background-transparency);
43
+ @include transition(all 0s);
44
+ }
45
+ }
@@ -0,0 +1,18 @@
1
+ .video-react-player .video-react-player-button {
2
+ background: none;
3
+ border: none;
4
+ color: inherit;
5
+ display: inline-block;
6
+ cursor: pointer;
7
+
8
+ overflow: visible; // IE8
9
+ font-size: inherit; // IE in general. WTF.
10
+ line-height: inherit;
11
+ text-transform: none;
12
+ text-decoration: none;
13
+ transition: none;
14
+
15
+ -webkit-appearance: none;
16
+ -moz-appearance: none;
17
+ appearance: none;
18
+ }
@@ -0,0 +1,13 @@
1
+ .video-react-player {
2
+ .video-react-player-closed-caption {
3
+ cursor: pointer;
4
+ @include flex(none);
5
+ @extend .video-react-player-icon;
6
+ @extend .video-react-player-icon-closed-caption;
7
+ }
8
+
9
+ video::-webkit-media-text-track-container {
10
+ -webkit-transform: translateY(-30px);
11
+ transform: translateY(-30px);
12
+ }
13
+ }
@@ -0,0 +1,51 @@
1
+ .video-react-player .video-react-player-control-bar {
2
+ display: none;
3
+ width: 100%;
4
+ position: absolute;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ height: 3.0em;
9
+
10
+ @include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
11
+ }
12
+
13
+ // Video has started playing
14
+ .video-react-player-has-started .video-react-player-control-bar {
15
+ @include display-flex;
16
+ visibility: visible;
17
+ opacity: 1;
18
+
19
+ $trans: visibility 0.1s, opacity 0.1s; // Var needed because of comma
20
+ @include transition($trans);
21
+ }
22
+
23
+ // Video has started playing AND user is inactive
24
+ .video-react-player-has-started.video-react-player-user-inactive.video-react-player-playing {
25
+ .video-react-player-control-bar.video-react-player-control-bar-auto-hide {
26
+ // Remain visible for screen reader and keyboard users
27
+ visibility: visible;
28
+ opacity: 0;
29
+
30
+ $trans: visibility 1.0s, opacity 1.0s;
31
+ @include transition($trans);
32
+ }
33
+ }
34
+
35
+ .video-react-player-controls-disabled .video-react-player-control-bar,
36
+ .video-react-player-using-native-controls .video-react-player-control-bar,
37
+ .video-react-player-error .video-react-player-control-bar {
38
+ // !important is ok in this context.
39
+ display: none !important;
40
+ }
41
+
42
+ // Don't hide the control bar if it's audio
43
+ .video-react-player-audio.video-react-player-has-started.video-react-player-user-inactive.video-react-player-playing .video-react-player-control-bar {
44
+ opacity: 1;
45
+ visibility: visible;
46
+ }
47
+
48
+ // IE 8 + 9 Support
49
+ .video-react-player-has-started.video-react-player-no-flex .video-react-player-control-bar {
50
+ display: table;
51
+ }
@@ -0,0 +1,42 @@
1
+ // control might be better named button now.
2
+ // It's used on both real buttons (play button)
3
+ // and div buttons (menu buttons)
4
+ .video-react-player .video-react-player-control {
5
+ outline: none;
6
+ position: relative;
7
+ text-align: center;
8
+ margin: 0;
9
+ padding: 0;
10
+ height: 100%;
11
+ width: 4em;
12
+ @include flex(none);
13
+
14
+ &:before {
15
+ font-size: 1.8em;
16
+ line-height: 1.67;
17
+
18
+ @extend %video-react-player-icon-default;
19
+ }
20
+
21
+ // Replacement for focus outline
22
+ &:focus:before,
23
+ &:hover:before,
24
+ &:focus {
25
+ text-shadow: 0em 0em 1em $video-react-player-primary-foreground-color,
26
+ 0em 0em 0.5em $video-react-player-primary-foreground-color;
27
+ }
28
+
29
+ }
30
+
31
+
32
+
33
+ // Hide control text visually, but have it available for screenreaders
34
+ .video-react-player .video-react-player-control-text {
35
+ @include hide-visually;
36
+ }
37
+
38
+ // IE 8 + 9 Support
39
+ .video-react-player-no-flex .video-react-player-control {
40
+ display: table-cell;
41
+ vertical-align: middle;
42
+ }
@@ -0,0 +1,13 @@
1
+ .video-react-player .video-react-player-fullscreen-control {
2
+ cursor: pointer;
3
+ @include flex(none);
4
+ }
5
+
6
+ .video-react-player.video-react-player-fullscreen {
7
+ position: fixed;
8
+ left: 0;
9
+ top: 0;
10
+ bottom: 0;
11
+ right: 0;
12
+ z-index: 9999;
13
+ }
@@ -0,0 +1,105 @@
1
+ // loading-spinner css style
2
+ .video-react-player .video-react-player-loading-spinner {
3
+ display: none;
4
+ position: absolute;
5
+ top: 50%;
6
+ left: 50%;
7
+ margin: -25px 0 0 -25px;
8
+ opacity: 0.85;
9
+
10
+ // Need to fix centered page layouts
11
+ text-align: left;
12
+
13
+ border: 6px solid rgba($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
14
+ // border: 6px solid rgba(43, 51, 63, 0.5);
15
+
16
+ box-sizing: border-box;
17
+ background-clip: padding-box;
18
+ width: 50px;
19
+ height: 50px;
20
+ border-radius: 25px;
21
+
22
+ &:before,
23
+ &:after {
24
+ content: "";
25
+ position: absolute;
26
+ margin: -6px;
27
+ box-sizing: inherit;
28
+ width: inherit;
29
+ height: inherit;
30
+ border-radius: inherit;
31
+ opacity: 1;
32
+ border: inherit;
33
+ border-color: transparent;
34
+ border-top-color: white;
35
+ -webkit-animation: video-react-player-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-player-spinner-fade 1.1s linear infinite;
36
+ animation: video-react-player-spinner-spin 1.1s cubic-bezier(0.6, 0.2, 0, 0.8) infinite, video-react-player-spinner-fade 1.1s linear infinite;
37
+ }
38
+ }
39
+
40
+ .video-react-player-seeking .video-react-player-loading-spinner,
41
+ .video-react-player-waiting .video-react-player-loading-spinner {
42
+ display: block;
43
+ }
44
+
45
+ .video-react-player-seeking .video-react-player-loading-spinner:before,
46
+ .video-react-player-waiting .video-react-player-loading-spinner:before {
47
+ border-top-color: rgb(255,255,255);
48
+ }
49
+
50
+ .video-react-player-seeking .video-react-player-loading-spinner:after,
51
+ .video-react-player-waiting .video-react-player-loading-spinner:after {
52
+ border-top-color: rgb(255,255,255);
53
+ -webkit-animation-delay: 0.44s;
54
+ animation-delay: 0.44s;
55
+ }
56
+
57
+ @keyframes video-react-player-spinner-spin {
58
+ 100% {
59
+ transform: rotate(360deg);
60
+ }
61
+ }
62
+
63
+ @-webkit-keyframes video-react-player-spinner-spin {
64
+ 100% {
65
+ -webkit-transform: rotate(360deg);
66
+ }
67
+ }
68
+
69
+ @keyframes video-react-player-spinner-fade {
70
+ 0% {
71
+ border-top-color: $video-react-player-secondary-background-color;
72
+ }
73
+ 20% {
74
+ border-top-color: $video-react-player-secondary-background-color;
75
+ }
76
+ 35% {
77
+ border-top-color: white;
78
+ }
79
+ 60% {
80
+ border-top-color: $video-react-player-secondary-background-color;
81
+ }
82
+ 100% {
83
+ border-top-color: $video-react-player-secondary-background-color;
84
+ }
85
+ }
86
+
87
+ @-webkit-keyframes video-react-player-spinner-fade {
88
+ 0% {
89
+ border-top-color: $video-react-player-secondary-background-color;
90
+ }
91
+ 20% {
92
+ border-top-color: $video-react-player-secondary-background-color;
93
+ }
94
+ 35% {
95
+ border-top-color: white;
96
+ }
97
+ 60% {
98
+ border-top-color: $video-react-player-secondary-background-color;
99
+ }
100
+ 100% {
101
+ border-top-color: $video-react-player-secondary-background-color;
102
+ }
103
+ }
104
+
105
+
@@ -0,0 +1,67 @@
1
+ .video-react-player {
2
+ .video-react-player-menu-button-inline {
3
+ @include transition(all 0.4s);
4
+ overflow: hidden;
5
+
6
+ &:before {
7
+ // Icon pseudoelement has a different base font size (1.8em), so we need to
8
+ // account for that in the width. 4em (standard button width) divided by 1.8
9
+ // to get the same button width as normal.
10
+ width: 2.222222222em;
11
+ }
12
+
13
+ &:hover,
14
+ &:focus,
15
+ &.video-react-player-slider-active {
16
+ width: 12em;
17
+
18
+ .video-react-player-menu {
19
+ display: block;
20
+ opacity: 1;
21
+ }
22
+
23
+ }
24
+
25
+ &.video-react-player-slider-active {
26
+ @include transition(none);
27
+ }
28
+
29
+ .video-react-player-menu {
30
+ opacity: 0;
31
+ height: 100%;
32
+ width: auto;
33
+
34
+ position: absolute;
35
+ left: 4em;
36
+ top: 0;
37
+
38
+ padding: 0;
39
+ margin: 0;
40
+
41
+ @include transition(all 0.4s);
42
+ }
43
+
44
+ .video-react-player-menu-content {
45
+ width: auto;
46
+ height: 100%;
47
+ margin: 0;
48
+ overflow: hidden;
49
+ }
50
+ }
51
+ }
52
+
53
+
54
+ .video-react-player-no-flex .video-react-player-menu-button-inline {
55
+ .video-react-player-menu {
56
+ display: block;
57
+ opacity: 1;
58
+ position: relative;
59
+ width: auto;
60
+ }
61
+
62
+ &:hover,
63
+ &:focus,
64
+ &.video-react-player-slider-active {
65
+ width: auto;
66
+ }
67
+ }
@@ -0,0 +1,27 @@
1
+ .video-react-player {
2
+ .video-react-player-menu-button-popup .video-react-player-menu {
3
+ display: none;
4
+ position: absolute;
5
+ bottom: 0;
6
+ width: 10em;
7
+ left: -3em; // (Width of video-react-player-menu - width of button) / 2
8
+ height: 0em;
9
+ margin-bottom: 1.5em;
10
+ border-top-color: rgba($video-react-player-primary-background-color, $video-react-player-primary-background-transparency); // Same as ul background
11
+
12
+ .video-react-player-menu-content {
13
+ @include background-color-with-alpha($video-react-player-primary-background-color, $video-react-player-primary-background-transparency);
14
+
15
+ position: absolute;
16
+ width: 100%;
17
+ bottom: 1.5em; // Same bottom as video-react-player-menu border-top
18
+ max-height: 15em;
19
+ }
20
+ }
21
+
22
+ }
23
+
24
+ // .video-react-player-workinghover .video-react-player-menu-button-popup:hover .video-react-player-menu,
25
+ .video-react-player-menu-button-popup .video-react-player-menu.video-react-player-lock-showing {
26
+ display: block;
27
+ }
@@ -0,0 +1,59 @@
1
+ .video-react-player-menu-button {
2
+ cursor: pointer;
3
+
4
+ // Change cursor back to default if the menu button is disabled
5
+ &.video-react-player-disabled {
6
+ cursor: default;
7
+ }
8
+ }
9
+
10
+
11
+ .video-react-player-menu {
12
+ .video-react-player-menu-content {
13
+ display: block;
14
+ padding: 0;
15
+ margin: 0;
16
+ overflow: auto;
17
+ font-family: $video-react-player-text-font-family;
18
+ }
19
+
20
+ li {
21
+ list-style: none;
22
+ margin: 0;
23
+ padding: 0.2em 0;
24
+ line-height: 1.4em;
25
+ font-size: 1.2em;
26
+ text-align: center;
27
+
28
+ &:focus,
29
+ &:hover {
30
+ outline: 0;
31
+ @include background-color-with-alpha($video-react-player-secondary-background-color, $video-react-player-secondary-background-transparency);
32
+ }
33
+
34
+
35
+ &.video-react-player-selected,
36
+ &.video-react-player-selected:focus,
37
+ &.video-react-player-selected:hover {
38
+ background-color: $video-react-player-primary-foreground-color;
39
+ color: $video-react-player-primary-background-color;
40
+ }
41
+
42
+ &.vjs-menu-title {
43
+ text-align: center;
44
+ text-transform: uppercase;
45
+ font-size: 1em;
46
+ line-height: 2em;
47
+ padding: 0;
48
+ margin: 0 0 0.3em 0;
49
+ font-weight: bold;
50
+ cursor: default;
51
+ }
52
+
53
+ }
54
+ }
55
+
56
+ // prevent menus from opening while scrubbing (FF, IE)
57
+ .video-react-player-scrubbing .vjs-menu-button:hover .video-react-player-menu {
58
+ display: none;
59
+ }
@@ -0,0 +1,42 @@
1
+ // Picture-in-Picture Control
2
+ .video-react-player .video-react-player-picture-in-picture-control {
3
+ cursor: pointer;
4
+ @include flex(none);
5
+ }
6
+
7
+ // Loop Control
8
+ .video-react-player .video-react-player-loop-control {
9
+ cursor: pointer;
10
+ @include flex(none);
11
+ }
12
+
13
+ .video-react-player .video-react-player-loop-control.video-react-player-icon-loop-active {
14
+ opacity: 0.7;
15
+ }
16
+
17
+ // Theater Mode Control
18
+ .video-react-player .video-react-player-theater-control {
19
+ cursor: pointer;
20
+ @include flex(none);
21
+ }
22
+
23
+ // Download Button
24
+ .video-react-player .video-react-player-download-control {
25
+ cursor: pointer;
26
+ @include flex(none);
27
+ }
28
+
29
+ // Screenshot Button
30
+ .video-react-player .video-react-player-screenshot-control {
31
+ cursor: pointer;
32
+ @include flex(none);
33
+ }
34
+
35
+ // Quality Menu
36
+ .video-react-player .video-react-player-quality-menu {
37
+ .video-react-player-quality-value {
38
+ font-size: 1em;
39
+ line-height: 3em;
40
+ text-align: center;
41
+ }
42
+ }
@@ -0,0 +1,11 @@
1
+ .video-react-player .video-react-player-play-control {
2
+ cursor: pointer;
3
+ @include flex(none);
4
+ @extend .video-react-player-icon;
5
+ @extend .video-react-player-icon-play-arrow;
6
+
7
+ &.video-react-player-playing {
8
+ @extend .video-react-player-icon-pause;
9
+ }
10
+ }
11
+
@@ -0,0 +1,13 @@
1
+ .video-react-player {
2
+ .video-react-player-playback-rate {
3
+ .video-react-player-playback-rate-value {
4
+ line-height: 3em;
5
+ text-align: center;
6
+ }
7
+
8
+ .video-react-player-menu {
9
+ width: 4em;
10
+ left: 0em;
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,27 @@
1
+ .video-react-player .video-react-player-poster {
2
+ display: inline-block;
3
+ vertical-align: middle;
4
+ background-repeat: no-repeat;
5
+ background-position: 50% 50%;
6
+ background-size: contain;
7
+ background-color: #000000;
8
+ cursor: pointer;
9
+ margin: 0;
10
+ padding: 0;
11
+ position: absolute;
12
+ top: 0;
13
+ right: 0;
14
+ bottom: 0;
15
+ left: 0;
16
+ height: 100%;
17
+
18
+ img {
19
+ display: block;
20
+ vertical-align: middle;
21
+ margin: 0 auto;
22
+ max-height: 100%;
23
+ padding: 0;
24
+ width: 100%;
25
+ }
26
+
27
+ }