summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config.php.sample2
-rw-r--r--lib/action.php9
-rw-r--r--theme/base/css/mobile.css72
3 files changed, 81 insertions, 2 deletions
diff --git a/config.php.sample b/config.php.sample
index da3154507..6e55eaffc 100644
--- a/config.php.sample
+++ b/config.php.sample
@@ -18,6 +18,8 @@ $config['site']['server'] = 'localhost';
$config['site']['path'] = 'laconica';
#$config['site']['fancy'] = false;
#$config['site']['theme'] = 'default';
+#To enable the built-in mobile style sheet, defaults to false.
+#$config['site']['mobile'] = true;
#For contact email, defaults to $_SERVER["SERVER_ADMIN"]
#$config['site']['email'] = 'admin@example.net';
#Brought by...
diff --git a/lib/action.php b/lib/action.php
index 79e8c9547..8ff9e646b 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -158,8 +158,6 @@ class Action extends HTMLOutputter // lawsuit
'type' => 'text/css',
'href' => theme_path('css/display.css', 'base') . '?version=' . LACONICA_VERSION,
'media' => 'screen, projection, tv'));
-
-
$this->element('link', array('rel' => 'stylesheet',
'type' => 'text/css',
'href' => theme_path('css/modal.css', 'base') . '?version=' . LACONICA_VERSION,
@@ -168,6 +166,13 @@ class Action extends HTMLOutputter // lawsuit
'type' => 'text/css',
'href' => theme_path('css/display.css', null) . '?version=' . LACONICA_VERSION,
'media' => 'screen, projection, tv'));
+ if (common_config('site', 'mobile')) {
+ $this->element('link', array('rel' => 'stylesheet',
+ 'type' => 'text/css',
+ 'href' => theme_path('css/mobile.css', 'base') . '?version=' . LACONICA_VERSION,
+ // TODO: "handheld" CSS for other mobile devices
+ 'media' => 'only screen and (max-device-width: 480px)')); // Mobile WebKit
+ }
Event::handle('EndShowLaconicaStyles', array($this));
}
if (Event::handle('StartShowUAStyles', array($this))) {
diff --git a/theme/base/css/mobile.css b/theme/base/css/mobile.css
new file mode 100644
index 000000000..3d0455a67
--- /dev/null
+++ b/theme/base/css/mobile.css
@@ -0,0 +1,72 @@
+/** theme: base
+ *
+ * @package Laconica
+ * @author Meitar Moscovitz <meitar@maymay.net>
+ * @license http://www.fsf.org/licensing/licenses/agpl-3.0.html GNU Affero General Public License version 3.0
+ * @link http://laconi.ca/
+ */
+
+/* Go linear. */
+#header,
+#header address,
+#site_nav_global_primary,
+#anon_notice,
+#site_nav_local_views .nav,
+#form_notice,
+#form_notice .form_data li,
+#core,
+#content_inner,
+#notices_primary,
+.notice,
+.notice .entry-title,
+.notice div.entry-content,
+.notice-options,
+.notice .notice-options a,
+.pagination,
+.pagination .nav,
+.aside .section { float: none; }
+
+.notice-options .notice_reply,
+.notice-options .notice_delete,
+.notice-options .form_favor,
+.notice-options .form_disfavor { position: static; }
+
+#form_notice,
+#anon_notice,
+#content_inner,
+#footer { width: auto; }
+
+/* And liquid. */
+#wrap { width: 95%; }
+
+/* Make things bigger on smaller screens. */
+body { font-size: 2em; }
+.notices { font-size: 1.5em; }
+
+#site_nav_global_primary, #site_nav_global_secondary { text-align: center; }
+
+.notice div.entry-content { margin-left: 0; }
+address { margin: 0; }
+
+#anon_notice, #footer { clear: left; font-size: .5em; }
+
+#form_notice textarea { width: 80%; height: 5em; }
+#form_notice .form_note { right: 20%; top: 6em; }
+#form_notice .form_actions input.submit { width: auto; }
+
+#content { padding: 18px 0; width: 100%; }
+#content h1, #page_notice, #content_inner { padding: 0 18px; }
+.notices .entry-title, .notices div.entry-content { width: 90%; }
+.notice .author .photo { height: 4.5em; width: 4.5em; } /* about double physical size; TODO: do this scaling better */
+.notice-options { position: absolute; top: 0; right: 0; padding-left: 7%; width: 3%; }
+.notice-options .notice_delete a { float: left; } /* Works, but feels like it shouldn't. */
+/* TODO: Make the icons of the notice options bigger. Probably with mobile-specific images. */
+.pagination .nav { overflow: auto; }
+
+#aside_primary { margin: 10px 0 0 0; border: none; padding: 0; width: 100%; }
+#popular_notices { float: none; width: auto; }
+/* Columns for supplemental info. */
+.aside .section { clear: none; padding: 9px; width: 45%; }
+#top_groups_by_post { float: left; }
+#featured_users { float: right; }
+#export_data { display: none; }