                                                    (column-width (- offset) gutter-width))])
         margin-last (if (neg? offset) margin-r 0)
         cycles (cycle-props cycle side margin-r margin-last)]
-    (list {:float side
-           :clear :none
-           :width (percent col-width)
+    (list {
+           :flex col-width
+
+           ;:float side
+           ;:clear :none
+           ;:width (percent col-width)
            (margin side) (percent margin-l)
            (opposite-margin side) (percent margin-r)}
           cycles)))
 
 (defn span
-  [& {:keys [ratio offset cycle uncycle gutter]
+  [& {:keys [ratio width offset cycle uncycle gutter]
       :or {ratio 1 offset 0 cycle 0 uncycle 0}}]
   (let [side (direction->side *layout-direction*)
-        width (* ratio 100)
+        span-width (if width
+                width
+                (* ratio 100))
         margin-r (if (neg? offset) (* (- offset) 100) 0)
         margin-l (if (pos? offset) (* offset 100) 0)
         cycles (if (pos? cycle)

                  [(str "&:nth-of-type(" cycle "n+1)")
                   {:clear :both}]]
                 [])]
    (list {:float side
           :clear :none
           :width (percent width)
           (margin side) (percent margin-l)
           (opposite-margin side) (percent margin-r)}
          cycles)))

      [(str "&:nth-of-type(" n "n+1)")
       {:clear :both}]])))

(defn grid
  []
  (list
    {:display :flex
     :flex-wrap :wrap}))

(defn column
  [& {:keys [ratio offset cycle uncycle gutter]
      :or {ratio 1 offset 0 cycle 0 uncycle 0}}]
