   # Renders the main part of the auth form. Also
   # renders any user errors.
   #
-  # fields: a list of input fields and labels to
-  #         be rendered in a table.
   # additional_instructions: text rendered before
   #                          the fields
-  body: (fields, additional_instructions) ->
+  body: (additional_instructions) ->
+    auth = fetch('auth')
+
     current_user = fetch '/current_user'
     primary_color = @props.primary_color or focus_color()
+
+
+    name_label = translator('auth.create.name_label', 'Your name')
+    email_label = translator('auth.login.email_label', 'Your email')
+    password_label = translator('auth.login.password_label', 'Your password')
+    password_placeholder = translator('auth.login.password.placeholder', 'password')
+    pic_prompt = translator('auth.create.pic_prompt', 'Your picture')
+    full_name_placeholder = translator('auth.create.full_name.placeholder', 'first and last name or pseudonym')
+    code_label = translator('auth.code_entry', 'Code')
+    code_placeholder = translator('auth.code_entry.placeholder', 'verification code from email')
+
+
+    section_heading_style =             
+      color: '#888'
+      fontSize: 24
+      display: 'block'
+      fontWeight: 700
+      fontStyle: 'oblique'
+
+    subsection_heading_style = 
+      display: 'block'
+
+
+    render_field = (label, render, label_style) -> 
+      field_id = render?.props?.id or render?[0]?.props?.id
+      if field_id 
+        field_id = field_id.replace('user_avatar_form', 'user_avatar')
+
+      label_style ||= section_heading_style
+
+      DIV 
+        style: 
+          marginBottom: 8
+
+        LABEL
+          htmlFor: field_id
+          style: section_heading_style
+          label
+
+        render
+
+    render_user_questions = =>
+      user_questions = @userQuestionInputs()
+
+      if user_questions.length > 0 
+        DIV
+          style: 
+            padding: "24px 24px"
+            backgroundColor: "#eee"
+            marginTop: 18
+          
+          H4
+            style: _.extend {}, section_heading_style, 
+              marginBottom: 18
+            translator('auth.user_questions.heading', 'Questions from the forum host') 
+
+
+          UL 
+            style: 
+              padding: "6px 0px"
+              listStyle: 'none'
+
+            for [label, render] in user_questions
+              field_id = render?.props?.id or render?[0]?.props?.id
+              LI 
+                style: 
+                  marginBottom: 8
+
+                LABEL
+                  htmlFor: field_id
+                  style: subsection_heading_style
+                  label
+
+                render
+
 
     DIV null,
       if additional_instructions

  # Generates a list of checkbox pledges. 
  # 

  getPledges: ->
    if !customization('auth_require_pledge')
      return []

      # The email VERIFICATION form
      when 'verify email'
        [ @headerAndBorder goal, translator('auth.verify_email.heading', 'Verify Your Email'),
            @body verification_sent_message
        ]

      when 'user questions'
        [ @headerAndBorder goal, translator('auth.more_info.heading', 'Your hosts request more info'),
            @body()
        ]

      else
        throw "Unrecognized authentication form #{auth.form}"


  #####
  # headerAndBorder
