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]>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
+ * @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; }