Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/apps/system/camera/style/filmstrip.css
diff options
context:
space:
mode:
Diffstat (limited to 'apps/system/camera/style/filmstrip.css')
-rw-r--r--apps/system/camera/style/filmstrip.css187
1 files changed, 187 insertions, 0 deletions
diff --git a/apps/system/camera/style/filmstrip.css b/apps/system/camera/style/filmstrip.css
new file mode 100644
index 0000000..fd32dc6
--- /dev/null
+++ b/apps/system/camera/style/filmstrip.css
@@ -0,0 +1,187 @@
+#filmstrip {
+ transition: 0.2s ease-in-out;
+ position: absolute;
+ z-index: 100;
+ left: 0;
+ right: 0;
+ height: 50px;
+ /*
+ * the background must be solid for preview mode because otherwise some
+ * of the frozen viewfinder shows through. If it really need to be translucent
+ * in camera mode, we'll have to change it with javascript
+ */
+ background: black;
+}
+
+#filmstrip.hidden {
+ transform: translateY(-50px);
+}
+
+img.thumbnail {
+ position: relative;
+ width: 46px;
+ height: 46px;
+ border: 2px solid white;
+ margin-right: 4px;
+ float: left; /* XXX: do we need this? */
+ -moz-user-select: none;
+ transition: 0.2s ease-in-out;
+}
+
+img.thumbnail.previewed { /* if the thumbnail is being previewed */
+ border: 2px solid #0ac;
+}
+
+/*
+ * Make the thumbnails rotate with the phone
+ */
+#filmstrip[data-orientation="90"] img.thumbnail {
+ transform: rotate(-90deg);
+}
+#filmstrip[data-orientation="180"] img.thumbnail {
+ transform: rotate(-180deg);
+}
+#filmstrip[data-orientation="270"] img.thumbnail {
+ transform: rotate(-270deg);
+}
+
+/* this is where we display image and video previews */
+#preview {
+ position: absolute;
+ left: 0;
+ width: 100%;
+ top: 50px;
+ bottom: 0px;
+ padding: 0;
+ margin: 0;
+ border-width: 0;
+ background: #000; /* opaque */
+ z-index: 100; /* on top of all the camera stuff */
+ transition: transform 0.5s linear;
+ overflow: hidden;
+ transform-origin: 0 0;
+}
+
+#preview.offscreen {
+ transform: translateY(-100%) scale(.125) translateX(50%);
+}
+
+#frame-container {
+ position: absolute;
+ left: 0;
+ top: 0;
+ width: 100%;
+ bottom: 40px;
+ padding: 0px;
+ margin: 0px;
+ overflow: hidden;
+ -moz-user-select: none;
+}
+
+#media-frame {
+ position: absolute;
+ /* size, position, and rotation are set based on the phone orientation */
+}
+
+#media-frame > img {
+ top: 0px; /* javascript modifies this position with a transform */
+ left: 0px;
+ position: absolute;
+ border-width: 0px;
+ padding: 0px;
+ margin: 0px;
+ transform-origin: 0px 0px;
+ pointer-events: none;
+ -moz-user-select: none;
+}
+
+/*
+ * these styes apply when we're swapping out a preview image to replace
+ * it with a full-resolution image, but the full image isn't ready yet.
+ * This happens when the user starts to zoom in on the image. We need
+ * some sort of simple visual effect to fill ~500ms of dead time so the
+ * user doesn't think the app has frozen up
+ */
+#media-frame > img.swapping {
+ opacity: 0.8;
+ outline: dashed #0ac 4px;
+ outline-offset: -4px;
+}
+
+#media-frame > video {
+ transform-origin: 0px 0px;
+}
+
+#preview-controls {
+ position: absolute;
+ left: 0;
+ right: 0;
+ bottom: 0px;
+ height: 40px;
+ background-color: rgba(0, 0, 0, 0.8);
+ z-index: 100; /* above the dynamically inserted frame elements */
+}
+
+a.button {
+ display: block;
+ padding: 0;
+ margin: 0;
+ border-width: 0;
+ background-position: center center;
+ background-repeat: no-repeat;
+ transition: 0.2s ease-in-out;
+}
+
+a.button:active, a.button:focus {
+ outline: none;
+}
+
+a.button.hidden {
+ display: none;
+}
+
+#camera-button {
+ position: absolute;
+ left: 0;
+ width: 33%;
+ height: 100%;
+ background-image: url(images/camera.png);
+}
+
+#share-button {
+ position: absolute;
+ left: 33%;
+ width: 33%;
+ height: 100%;
+ background-image: url(images/share.png);
+}
+
+#delete-button {
+ position: absolute;
+ left: 67%;
+ width: 33%;
+ height: 100%;
+ background-image: url(images/delete.png);
+}
+
+#filmstrip-gallery-button {
+ position: absolute;
+ right: 0;
+ top: 0;
+ width: 50px;
+ height: 50px;
+ background-image: url(images/grid.png);
+}
+
+/*
+ * Make the button icons rotate with the phone
+ */
+#preview[data-orientation="90"] a.button {
+ transform: rotate(-90deg);
+}
+#preview[data-orientation="180"] a.button {
+ transform: rotate(-180deg);
+}
+#preview[data-orientation="270"] a.button {
+ transform: rotate(-270deg);
+}