From c9e8b1e5c380904e479927e2f24754d8709f590e Mon Sep 17 00:00:00 2001
From: Meitar Moscovitz <meitarm@gmail.com>
Date: Wed, 11 Feb 2009 03:03:16 +1100
Subject: [PATCH] Add streamlined mobile device-friendly styles when enabled in
 config.

A new mobile-specific style sheet is added and loaded only if the
`$config['site']['mobile']` configuration variable is set to true.
---
 config.php.sample         |  2 ++
 lib/action.php            |  7 ++++++
 theme/base/css/mobile.css | 48 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 57 insertions(+)
 create mode 100644 theme/base/css/mobile.css

diff --git a/config.php.sample b/config.php.sample
index a2c5801f45..d1191ea01b 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 ce92addf5c..ce37f4760a 100644
--- a/lib/action.php
+++ b/lib/action.php
@@ -170,6 +170,13 @@ class Action extends HTMLOutputter // lawsuit
         }
         $this->comment('[if IE]><link rel="stylesheet" type="text/css" '.
                        'href="'.theme_path('css/ie.css', null).'?version='.LACONICA_VERSION.'" /><![endif]');
+        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' => 'screen and (max-device-width: 480px)')); // Mobile WebKit
+        }
     }
 
     /**
diff --git a/theme/base/css/mobile.css b/theme/base/css/mobile.css
new file mode 100644
index 0000000000..6cd717a4df
--- /dev/null
+++ b/theme/base/css/mobile.css
@@ -0,0 +1,48 @@
+/** 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,
+#core,
+#content_inner,
+#notices_primary,
+.notice,
+.notice .entry-title,
+.notice div.entry-content,
+.pagination,
+.pagination .nav,
+.aside .section { float: none; }
+
+/* And liquid. */
+#wrap { width: 95%; }
+
+body { font-size: 2em; } /* Make things bigger on smaller screens. */
+
+#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; width: auto; font-size: .5em; }
+
+#content { padding: 18px 0; width: 100%; }
+#content h1, #page_notice, #content_inner { padding: 0 18px; }
+#content_inner { width: auto; }
+.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; }
-- 
2.39.5