         [x y] center]
     (fn []
       (let [{:keys [board current-field loading?]} @app-state
-            ownership (name (get-in board [id :ownership]))
+            {:keys [abbreviation ownership]} (board id)
             disabled? (not (nil? current-field))
-            availability (if (or loading? disabled? (not (#{"default" "missed"} ownership)))
+            availability (if (or loading? disabled? (not (#{:default :missed} ownership)))
                              "unavailable"
                              (case ownership
-                                   "default" "available"
-                                   "missed" "missed"))]
-        [:g {:class (join-by-space "hexagon" availability (when (= ownership "active") "active"))
-             :on-click (partial logic/pick-field id)} 
-         [:polygon.hex-outer {:fill (str "url(#" ownership "-outer)")
+                                   :default "available"
+                                   :missed "missed"))
+            ownership-name (name ownership)
+            {:keys [font-size-ratio label]} (if (= ownership :active)
+                                                 {:font-size-ratio (max (dec (count abbreviation)) 2.5)
+                                                  :label abbreviation}
+                                                 {:font-size-ratio 2
+                                                  :label text})]
+        [:g {:class (join-by-space "hexagon" availability (when (= ownership :active) "active"))
+             :on-click (partial logic/pick-field id)}
+         [:polygon.hex-outer {:fill (str "url(#" ownership-name "-outer)")
                               :points (hex-coords center size)}]
-         [:polygon.hex-inner {:fill (str "url(#" ownership "-inner)")
+         [:polygon.hex-inner {:fill (str "url(#" ownership-name "-inner)")
                               :points (hex-coords (map #(- % absolute-offset) center)
                                                   (- size (* 2 absolute-offset)))
                               :transform (str "translate(" absolute-offset "," absolute-offset ")")}]
-         [:text {:x x 
-                 :y (+ y (/ size 5)) 
-                 :font-size (/ size 2)
+         [:text {:x x
+                 :y (+ y (/ size (* 2.5 font-size-ratio)))
+                 :font-size (/ size font-size-ratio)
                  :text-anchor "middle"}
-          text]]))))
+          label]]))))
 
 (def hex-triangle
   "Component that generates triangular board of hexagons."

                                       (y-offset y)]
                              :id [x y]
                              :size size)])
          (:board @app-state))])))

(defn winners-cup
  "Winner's cup coloured with the colour of the winning player."

            [db-quiz.logic :as logic]
            [db-quiz.state :refer [app-state]]
            [db-quiz.util :refer [join-by-space shade-colour]]
            [db-quiz.i18n :refer [t]]
            [cljs-http.client :refer [generate-query-string]]
            [clojure.string :as string]))

(defn get-gradients
